2013-03-19 40 views
6

如果源文件存儲在本地,則HTML5音頻標籤似乎無法在Web視圖中使用。 即HTML5 <audio>標記在Android Webview中不起作用

<audio controls="controls"> 
    <source src="my_local_audio_file.mp3" type="audio/mpeg" /> 
</audio> 

當文件從服務器訪問像src="http://example.com/audio.mp3"

我想它在Android ICS它的工作原理。

有幾個解決方法如here所述。但我不明白爲什麼會出現這個問題。

任何解決方案或見解爲什麼發生這種情況?

謝謝。

+0

嘗試給完整路徑。 – magirtopcu 2013-03-19 09:04:11

+0

我試着給完整路徑。它仍然不起作用。 – varun1505 2013-03-19 09:17:27

+0

該文件的位置是什麼? – Vineet1982 2013-03-19 10:12:20

回答

2

這只是alternet的方式來實現目標,從Android的HTML文件

使用媒體播放器(http://developer.android.com/reference/android/media/MediaPlayer.html)播放音頻播放音頻。 你可以調用JavaScript中的Android,你已經寫在HTML文件的功能..

這是例子如何從JavaScript代碼

WebView webView = (WebView) findViewById(R.id.webview); 
webView.addJavascriptInterface(new WebAppInterface(this), "Android"); 
-------------------------------- 
public class WebAppInterface { 

    Context mContext; 
    /** Instantiate the interface and set the context */ 
    WebAppInterface(Context c) { 
     mContext = c; 
    } 

    /** Show a toast from the web page */ 
    @JavascriptInterface 
    public void showToast(String toast) { 
     Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show(); 
    } 
} 

--------------------------- 
java sript code 

<input type="button" value="Say hello" onClick="showAndroidToast('Hello Android!')" /> 

<script type="text/javascript"> 
    function showAndroidToast(toast) { 
     Android.showToast(toast); 
    } 
</script> 

調用java寫的文件功能這樣你調用來自Android代碼的音頻。

+0

來訪問它,這是我最後做的。使用了一個javaScriptInterface並從javascript調用函數。我也爲視頻做了同樣的事情。 – varun1505 2013-04-25 10:07:48

1

這看起來像是一個非常愚蠢的bug在web視圖內。目前的一種解決方法是將音頻「編碼」爲mp4文件,然後通過視頻標籤進行鏈接。

<video width="100%" height="48" controls> 
    <source src="audioonly.mp4" type="video/mp4"> 
</video> 

這將顯示一個黑色矩形(沒有視頻信號),並且還內側的控件。這是迄今爲止最好的解決方案,但最簡單。您可以在Mac和Windows上使用Miro Video Converter創建這樣的mp4。

祝你好運:)