Android 播放声音中断

mizone 2011-09-26 08:48:11
我有一个音频文件 700k的mp3文件,放到raw目录下
播放的代码如下:
Timer t = new Timer();
t.schedule(new TimerTask(){
@Override
public void run() {
final MediaPlayer player = MediaPlayer.create(TestappActivity.this,R.raw.test);
player.setOnCompletionListener(new OnCompletionListener(){

@Override
public void onCompletion(MediaPlayer mp) {
player.release();
}});
player.start();

}}, 5000);

奇怪的是,在一个测试的app中,运行的很好,声音能从头播放到结尾

但是放到真正的产品中,只能播放到一半,然后就再也不播放了,onCompletion这个方法也不回调了

在停止播放时,看到这样的log:
09-25 17:48:25.469: DEBUG/dalvikvm(10235): GC_CONCURRENT freed 1590K, 47% free 5628K/10567K, external 1819K/1831K, paused 8ms+3ms
09-25 17:48:25.469: DEBUG/AudioTrack(1357): Audio Track already stopped

大家有碰到过这个问题吗,是内存不够造成的吗?




...全文
324 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
nulls 2011-09-27
  • 打赏
  • 举报
回复
这样不太好吧。
mizone 2011-09-27
  • 打赏
  • 举报
回复
谢谢
应该是GC导致播放被暂停了。我启动了另外一个线程来监控这个播放过程,一旦发现它不再播放,就马上调用mediaPlayer.start()方法来继续播放,这样可以解决这个问题。

但是我不是很清楚为什么GC之后,MediaPlayer不自动继续播放,而需要人工干预
Mourinho 2011-09-26
  • 打赏
  • 举报
回复
从external 1819K/1831K看来感觉上是内存不够了
LZ可以用setDataSource(String path),prepare()试试
最好不要用create,比较耗内存,文件一大就会出现各种问题

80,350

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧