Android 上的 HTML5 <audio> 标签

Posted

技术标签:

【中文标题】Android 上的 HTML5 <audio> 标签【英文标题】:HTML5 <audio> tag on Android 【发布时间】:2011-06-21 04:17:47 【问题描述】:

我发现很多线程都在讨论 android 上标签的支持。到目前为止,即使是 Android Froyo 2.2 也无法播放音频(我已经在 nexus One 上进行了测试)。

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

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

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

非常感谢 BR 不锈钢

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

更晚添加:嗯,&lt;audio&gt; 元素即使在 Android 2.3 上也有问题 - 我不知道 Google 在做什么,这么简单的事情是个问题。使用 Flex Player 没问题,但问题是在某些手机上无法从 Android 市场安装 Adob​​e Flash 播放器,因为有一些 Adob​​e 硬件要求,例如 1Ghz CPU 等。一些供应商如 HTC 提供自己的 Flash 播放器,但这些都非常糟糕,并且不能在 AS 3.0 上正常工作......到目前为止,一切都完美无缺,尤其是在三星手机(如 Nexus S 或 Galaxy S)上。

【问题讨论】:

我一直在对音频标签进行一些试验,以使其与 Android 2.3 一起使用,但效果不佳(使用模拟器)。但是,使用 【参考方案1】:

您挖掘的内容也与我遇到的内容一致。 2.2 支持音频标签,但没有编解码器支持它,这显然是 Froyo 以外的版本中修复的错误:

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

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

【讨论】:

您好,最低版本是Android OS 2.3,对吗?后备解决方案有哪些? Flash/Flex 嵌入式播放器?非常感谢您的评论。 BR STeN 我认为闪存可能是一种选择,但恐怕我无法提供任何实用的建议。我只是在等待 2.3 被广泛使用。 您好,我决定将小型 Flex 流播放器嵌入到我的 Web 应用程序中,作为一种临时解决方案,直到 2.3 被广泛使用。如果安装了 Flash Player,你知道如何检查 JavaScript 吗?谢谢【参考方案2】:

我忘了先问。您是在考虑开发一个 Android 应用程序还是只是一个普通的网络应用程序?由于此解决方案您需要 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);
        
    

);

希望这对我有帮助!

问候。

【讨论】:

嗨,感谢您提供有趣的提示-可能对我在其他应用程序中有用...不幸的是,这次我正在做真正纯粹的网络应用程序...:(( BR STeN

以上是关于Android 上的 HTML5 <audio> 标签的主要内容,如果未能解决你的问题,请参考以下文章

Android 上的 HTML5 <audio> 标签

HTML5 视频全屏未填充在移动视图上的 android 浏览器上

html5新特性

在这个简单的页面中,Android Chrome 上的 HTML5 视频控件不会跨越整个视频宽度

html5 Android 应用上的 Google 导航

在某些 Android 设备/Chrome 上的 HTML5 数字输入中没有小数位