Android上的HTML5 <audio>标签

STe*_*TeN 10 audio html5 android google-chrome

我发现很多线程讨论Android上标记的支持.到目前为止看起来,即使Android Froyo 2.2也无法播放音频(我已经对nexus One进行了测试).

根据www.html5test.com网页,支持标签本身,但浏览器中没有编解码器(mp3,ogg ..).那我怎么解决这个问题呢?

到目前为止,我只看到一个解决方案,使用嵌入式Flex或Flash播放器,它可以流式传输mp3.那是对的吗?这是我在Android网络浏览器中播放.mp3或其他音频流的唯一方法吗?

Android 2.3 Gingerbread是否支持某些音频流?

非常感谢BR STeN

后来添加:我最终使用的工作解决方案是用于流式传输的小型Flex .swf.它可以很容易地与HTML网页集成(Flex-Javascript通信非常有效).唯一的问题是在某些手机上没有重新安装Flash Player,必须先从Android Market下载.

甚至后来添加:好吧,<audio>即使在Android 2.3上,该元素也是错误的 - 我不知道谷歌在做什么这么简单的事情是个问题.使用Flex Player是有道理的,但问题是在某些手机上无法从Android市场安装Adobe Flash播放器,因为有一些Adobe硬件要求,如1Ghz CPU等.一些像HTC这样的供应商提供自己的Flash播放器,但是那些非常糟糕,并且与AS 3.0无法正常工作......到目前为止,一切都运行得非常好,特别是在三星手机上(如Nexus S或Galaxy S).

mik*_*ehl 6

你挖出的东西也同意我遇到的情况.2.2支持音频标签,但没有编解码器来支持它,这显然是在Froyo之外的版本中修复的错误:

http://code.google.com/p/android/issues/detail?id=9372

我在Nexus S上使用了带有mp3文件的音频标签,它在那里正常工作(至少是最新的固件版本).


mde*_*lmo 6

我先忘了问.您是在考虑开发Android应用程序还是仅仅是常规的Web应用程序?这个解决方案的原因你需要Android代码.

如果您不考虑使用Android代码,那么您可以跳过剩下的消息,抱歉!

================================================== ================================

这里有一些技巧:您可以使用常规链接到您的音频文件,或使用javascript重定向到其中一个文件(如果您让Javascript这样做),然后覆盖Url加载,如下所示:

mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
mWebView.setWebViewClient(new WebViewClient(){
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        if (url.endsWith(".ogg")){
            Log.d(TAG, "Reproducir archivo OGG");
            Uri tempPath = Uri.parse(url);
            MediaPlayer player = MediaPlayer.create(WebViewVideo.this, tempPath);
            player.start();
            return true;
        }else{
            return super.shouldOverrideUrlLoading(view, url);
        }
    }

});
Run Code Online (Sandbox Code Playgroud)

希望这有帮助,它对我有用!

问候.