2017-08-31 70 views
2

如果与服务器的连接断开,我的Android应用程序需要每隔5秒钟向用户发出警告音。MediaPlayer在一段时间后停止播放

所以每隔5秒就执行该代码

MediaPlayer np = MediaPlayer.create(globals.MainContext, R.raw.warn); 
np.start(); 

它是一种短mp3声音剪辑,持续也许2秒。它播放几次然后不再播放。我查看了日志和“AudioFlinger:它说没有足够的音轨记忆”,然后是一堆相关的音频投诉。

是因为我一直重复创建一个新的MediaPlayer?我认为当声音自动停止时会收集垃圾并将其移除?是否应该只创建一次并保持物体周围?

有人知道吗?

感谢

回答

1

是如你所说,没有创建新的MediaPlayer每次。因此,创建MediaPlayer对象,然后每隔5秒执行一次只能执行np.start();

+0

刚刚尝试过,它的工作 –

+0

太棒了!刚刚在做Udacity Android Basics Nanodegree的时候就了解了它。无论如何,不​​要忘记标记我的答案为接受:)干杯。 –