gpt4 book ai didi

android - 在 Android 上播放音频

转载 作者:行者123 更新时间:2023-12-03 02:05:43 27 4
gpt4 key购买 nike

关于这个主题的许多问题的答案对我没有帮助!音频需要首先通过单击或任何其他类型的操作来启动不是问题。

我想在我的网站上播放许多不同的短 mp3。我发现的最佳方法如下。它适用于 Internet Explorer 和 Chrome(其他未经测试的桌面浏览器)以及带有 iOS 的移动设备。但不是在安卓上。

在我的 html 中,我初始化了一个音频设备:

<audio id="mp3play" src=""></audio>

它仅用于定义名称“mp3play”。

在 html 的标题中,我有以下 javascript:
<SCRIPT language=JavaScript> 
<!--
function play(name) {
var oAudio = document.getElementById("mp3play");
oAudio.stop;
oAudio.src = name;
oAudio.play();
}

//-->

现在我可以通过以下链接调用播放器:
<a href="javascript:play('stuff/voc/WAVvow/011001.MP3');"

这工作正常,即使在 Android 上。

但是对于特殊要求,我不使用 mp3 的文件名。我制作了一个 Perl 脚本来根据计算传递 pm3 数据。为此,我使用以下链接:
<a href="javascript:play('../cgi-bin/playmp3.pl?185004');"

这个 Perl 代码“playmp3.pl”发送一个标题,然后是完整的 mp3 数据:
    ($entry[0] has a pointer to the desired data, $entry[1] the length)
open(DAT, "<../wbtde/DictData/dv8.dat");
binmode DAT;
seek(DAT, $entry[0], 0);
read(DAT, $mp3, $entry[1]); # Lesen des Eintrages
close DAT;
print "Content-type: audio/mpeg\n\n";
print $mp3;

这也适用于 IE、Chrome 和 iOS 浏览器,但不适用于 Android。

我也可以直接调用脚本
www.mysite.com/cgi-bin/playmp3.pl?185004

这也适用于 IE、Chrome 和 iOS 浏览器,但不适用于 Android。 Android 告诉我它不能播放这种类型的内容。但是对于内容类型音频/mpeg3,它也没有播放。

这是我仅点击一个链接时的 Android 错误日志:
            D/CDX_Player( 2402): >>>>>>>> CedarX Player Version: 00010707
I/CedarPlayerWrapper( 2402): setDataSource('http://www.example.com/cgi-bin/playmp3.pl?062013')
I/ChromiumHTTPDataSource( 2402): connect to http://www.example.com/cgi-bin/playmp3.pl?062013 @0
W/MediaPlayer( 967): info/warning (701, 0)
I/MediaPlayer( 967): Info (701,0)
D/sft_http_stream( 2402): reset stream
I/NuCachedSource2( 2402): ERROR_END_OF_STREAM
W/demux_http( 2402): unknown file format!
E/demux_http( 2402): open error, destroy stream handle
E/DemuxSftNetwork_Component( 2402): cedar demuxer open error
E/CedarXPlayer( 2402): CedarXPlayer:prepare error!
E/MediaPlayer( 967): error (1, -2147483648)
E/MediaPlayer( 967): Error (1,-2147483648)
I/CDX_Player( 2402): cancel prepare!
D/CDX_Player( 2402): >>>>>>>> CedarX Player Version: 00010707
I/CedarPlayerWrapper( 2402): setDataSource('http://www.example.com/cgi-bin/playmp3.pl?062013')
W/MediaPlayer( 967): info/warning (701, 0)
I/ChromiumHTTPDataSource( 2402): connect to http://www.example.com/cgi-bin/playmp3.pl?062013 @0
I/MediaPlayer( 967): Info (701,0)
D/sft_http_stream( 2402): reset stream
I/NuCachedSource2( 2402): ERROR_END_OF_STREAM
W/demux_http( 2402): unknown file format!
E/demux_http( 2402): open error, destroy stream handle
E/DemuxSftNetwork_Component( 2402): cedar demuxer open error
E/CedarXPlayer( 2402): CedarXPlayer:prepare error!
E/MediaPlayer( 967): error (1, -2147483648)
E/MediaPlayer( 967): Error (1,-2147483648)
I/CDX_Player( 2402): cancel prepare!

另一个尝试:
我已将 Perl 脚本的输出保存到名为“test.MP3”的文件中。然后我在我的html中准备了一个链接
<a href="javascript:play('stuff/test.MP3');"

这适用于Android!所以我可以假设 Perl 脚本的输出是正确的。

这是内容类型的问题吗?

这是文件名的问题(.pl 而不是 mp3)?

最佳答案

它是文件名!

幸运的是,Android 接受在 Perl 调用中添加“.mp3”:

www.mysite.com/cgi-bin/playmp3.pl?185004.mp3

我已更改 Perl 脚本以删除该添加,现在它适用于所有平台。

关于android - 在 Android 上播放音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27957880/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com