我正在尝试从WebView中播放一个音频,这个音频是由一个URL提供的。我通过重载url加载来实现这一点。它开始播放音频,但很多时候媒体播放器就会停止。这种情况大约发生在30%的时间里,而且这些音频文件从来没有超过30秒。
我尝试了MP3、OGG和WAV,但任何一种格式都会出现这种情况。
我还尝试了先下载文件,然后再播放它,而不是直接流式传输,但也没有效果。
以下是一段代码,以展示它的工作原理:
我已经检查了由“AudioLoader”保存的音频文件,一切正常。WAV案例使用了我的第一个尝试,通过流式播放。
我还尝试了SoundPool和AsyncPlayer ... 无济于事!
因此...到目前为止,我不认为这是通信、编解码器或缓冲问题。我的唯一提示是这些日志条目,每次问题发生时都会重复出现,适用于所有格式和所有方法:
我尝试了MP3、OGG和WAV,但任何一种格式都会出现这种情况。
我还尝试了先下载文件,然后再播放它,而不是直接流式传输,但也没有效果。
以下是一段代码,以展示它的工作原理:
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.endsWith(".ogg")){
AudioLoader audioLoader = new AudioLoader(url);
audioLoader.start();
return true;
}
else if (url.endsWith(".wav")){
Uri tempPath = Uri.parse(url);
MediaPlayer player = MediaPlayer.create(interfazWeb, tempPath);
if (player != null){
player.start();
} else {
Log.e(TAG, "No se puede abrir el audio:" + url);
}
return true;
}
else if (url.endsWith(".mp3")){
AudioLoader audioLoader = new AudioLoader(url);
audioLoader.start();
return true;
}else{
return super.shouldOverrideUrlLoading(view, url);
}
}
我已经检查了由“AudioLoader”保存的音频文件,一切正常。WAV案例使用了我的第一个尝试,通过流式播放。
我还尝试了SoundPool和AsyncPlayer ... 无济于事!
因此...到目前为止,我不认为这是通信、编解码器或缓冲问题。我的唯一提示是这些日志条目,每次问题发生时都会重复出现,适用于所有格式和所有方法:
12-31 09:41:49.284: WARN/AudioFlinger(59): write blocked for 160 msecs, 20 delayed writes, thread 0xd7a8
12-31 09:41:49.554: WARN/TimedEventQueue(59): Event 6 was not found in the queue, already cancelled?
请问有人知道吗?还是我面临着一个错误/失效的问题。
祝你们在2011年快乐,尤其是如果你能帮助我 :P
敬礼,曼努埃尔。