HTML5 <audio> tag not working in Android Webview

后端 未结 2 1906
悲哀的现实
悲哀的现实 2020-12-29 00:02

the HTML5 audio tag doesn\'t seem to work in the web view if the source file is stored locally. i.e.

相关标签:
2条回答
  • 2020-12-29 00:26

    this is just alternet way to achieve goal to play audio from html file

    use Mediaplayer (http://developer.android.com/reference/android/media/MediaPlayer.html) of Android for playing audio. you can invoke function of android from javascript that you have written in HTML file..

    this is example of how you can invoke function written in java file from javascript code

    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>
    

    This way you invoke audio from Android code.

    0 讨论(0)
  • 2020-12-29 00:37

    this seems like a very stupid bug inside the webview. One workaround currently is to "encode" the audio as an mp4 file and then link it via the video tag.

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

    This will show a black rectangle (no video) and also the controls inside. It is by far not the best solution but the easiest. You can use Miro Video Converter on Mac and Windows to create such a mp4.

    Good luck :)

    0 讨论(0)
提交回复
热议问题