HTML5音频无法在移动设备上播放

ben*_*qus 5 audio mobile html5 tablet html5-audio

亲爱的HTML5开发人员,

我对这个HTML5音频有些麻烦...所以让我们跳进去吧.

ap  = "<audio width='200' height='30' preload='auto' controls autobuffer>";
ap += "<source src='util/blob_audio.php?i=" + w + "&ogg=1' type='audio/ogg' />";
ap += "<source src='util/blob_audio.php?i=" + w + "&mp3=1' type='audio/mpeg' />";
ap += "</audio>";
Run Code Online (Sandbox Code Playgroud)

我在JavaScript中生成它,并且方法在需要时返回它.我想我不应该提到"w"变量,这是一个参数(YouDon'tSay),它的工作正常.

应该没问题吧?它们出现在台式机上,但它们在移动设备上遇到了麻烦(我已经在iPad2,Android 3.2.1平​​板电脑,Android 2.3.6智能手机上进行了测试).

它在iPad 2上显示:"无法播放音频文件." 在元素中.而Droid显示默认音频元素,但没有音量控制,视觉上它正在播放 - 从头到尾跳跃.

PHP标题看起来像这样(在blob_audio.php中)(我们将音频存储为数据库中的blob [不要问我为什么,这不是我的想法]):

header("Content-Type: audio/ogg"); // this is inside of a condition, this is the "ogg" part of it
header('Content-Length: ' . $length);
header('Content-Disposition: inline');
header('X-Pad: avoid browser bug');
header('Cache-Control: no-cache');
Run Code Online (Sandbox Code Playgroud)

这很好用,因为一切都适用于桌面.

我在想,也许这些格式(mp3,ogg)对于ARM体系结构CPU编码不正确(不支持编解码器).如果是mp3,这可能会发生吗?

一个想法?任何人?=)

谢谢你,本

ben*_*qus 15

好的,我们已经弄明白了.=)

所以这是事实(见下面列出):

iStuffs的问题 - >我们正在通过安全连接(HTTPS).这搞砸了iShit HTML5音频处理.他们需要一些"intermedia证书" - 可能用于身份验证或我不知道 - 在服务器的证书链之间.所以事情不是通过SSL在我们的测试服务器上工作.谁知道......当你正常部署它时它会起作用.但是,Android来了,小心!

Android很有趣,因为(如文档-_O所示)Droid不支持3.1版本以下的任何媒体格式.这是一个完整的"搞砸人性"......我不明白为什么这样一个问题,使得af*cking系统能够在21世纪通过f*cking SECURE连接播放任何多媒体...这必须是一些版权法,我必须再次呕吐......

如果你想知道我们做了什么来解决这个问题:我们发现,如果我们真的想让我们的应用程序跨浏览器和"跨设备兼容"(如果这是正确的命名,但不知道但是我相信你明白了;)),我们需要从SSL下"取出"音频(多媒体/媒体).因此,为了简单起见,我们为音频文件创建了一个简单的HTTP子域(层次结构中的单独文件夹)(我们现在只需要音频),并通过该子域可以访问它,并通过脚本文件进行身份验证/验证.所以一切都在HTTPS下,但多/媒体在HTTP上是分开的.

随时随地在每个f*cking设备上正常工作.我知道它是一个"更大"的解决方案,但对于我们正在测试这些东西的任何设备来说,这是最"可实现的".

希望它帮助了某个人!=)干杯!