7

我是 HTML 和 Java 的初学者,我正在尝试通过使用 HTML 和 Java 的 Web 视图在 android 上的一个简单的 Web 应用程序中播放音频文件。我已经成功地让它在 Android 4.0 上运行。但是,它不适用于 2.3.3 或 2.2。我做了很多研究,到目前为止,我发现它不受支持。任何人都可以确认或否认这一点,并可能指出我正确的方向吗?这是我在 4.0 上所做的工作,但没有别的。

WebView engine = (WebView) findViewById(R.id.web_engine);

String audioTest =  "< html >" + <br/>
                "< body >" + <br/>
                "< audio id='egSound' preload='auto'  autoplay ='autoplay'>" + <br/>
                "< source src=' www.egSoundUrl.com '>" +                    
                "< /audio>" + <br/>
                "< /body>"  +  
                "< /html>";

engine.loadData(audioTest, "text/html", null);

如何让相同的代码适用于 2.3.3?在我的研究中,我遇到了一个能够使用视频标签播放音频文件的人,但我无法让它工作。任何共享的知识将不胜感激。

4

4 回答 4

3

是的。遗憾的是,只有 Gingerbread 支持 HTML5 音频元素。

我读到在 2.2 和 2.3 中以某种方式支持音频标签,但由于某些非常奇怪的原因,mp3 和 ogg 编解码器不支持。因此,即使在 Android 2.3 之前的手机上支持它也毫无用处。

解决方案 1 视频标签解决方法(1.6 到 2.2)如下:

<video src="soundfile.mp3" onclick="this.play();"></video>

是你试过的吗?

解决方案 2 另一种可能的解决方案(2.2+)是实现一个带有 Flash 后备的 JQuery Player,比如UbaPlayer

解决方案 3 最后.. StackOverflow 的另一个用户有一个 java 解决方法,这里:

..希望这可以帮助 :)

于 2012-08-22T17:04:39.520 回答
2

对于任何新访问者来说,这只是一个快速的单线 - 尝试在您的 webview 设置代码中使用以下内容:

mWebView.getSettings().setMediaPlaybackRequiresUserGesture(false);

它成功解决了音频播放问题!

于 2017-11-19T02:56:24.237 回答
0

我也遇到了同样的问题,对我有用的解决方案是.. 使用Android 的Mediaplayer ( http://developer.android.com/reference/android/media/MediaPlayer.html ) 播放音频。您可以从您在 HTML 文件中编写的 javascript 调用 android 的功能..

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>

这样您就可以从 Android 代码中调用音频。

于 2013-04-25T09:39:39.980 回答
0

Tag Audio 刚刚为我工作,使用.loadUrl("https://webpage.html").

显示不支持.loadData(htmlString, "text/html", null)的 mime 消息。

于 2017-12-01T16:51:27.917 回答