有谁知道这些问题的程序化解决方案?
编辑:
public voID play(Context context){ if (soundplayer != null){ soundplayer.release(); } int rID = 0; switch(aIndex){ case 0: rID = R.raw.c0; break; case 1: rID = R.raw.c1; break; case 2: rID = R.raw.c2; break; case 3: rID = R.raw.c3; break; case 4: rID = R.raw.c4; break; case 5: rID = R.raw.c5; break; case 6: rID = R.raw.c6; break; case 7: rID = R.raw.c7; break; case 8: rID = R.raw.c8; break; case 9: rID = R.raw.c9; break; case 10: rID = R.raw.c10; break; case 11: rID = R.raw.c11; break; case 12: rID = R.raw.c12; break; case 13: rID = R.raw.c13; break; case 14: rID = R.raw.v14; break; case 15: rID = R.raw.v15; break; case 16: rID = R.raw.v16; break; case 17: rID = R.raw.v17; break; case 18: rID = R.raw.v18; break; case 19: rID = R.raw.v19; break; case 20: rID = R.raw.v20; break; case 21: rID = R.raw.v21; break; case 22: rID = R.raw.v22; break; case 23: rID = R.raw.v23; break; default: rID = R.raw.error; break; } soundplayer = MediaPlayer.create(context,rID); if (soundplayer != null){ soundplayer.start(); }}解决方法 对于初学者来说,我会尝试确保在start()之前调用MediaPlayer.create()函数.如果是游戏,请在开始新游戏时加载声音(为每个声音创建新的媒体播放器).之所以这样,是因为create函数会在那里有效地加载声音文件,然后在调用start时准备好顺利播放.如果您在运行文件之前每次都加载文件,那么您不仅需要执行比您需要的更多的工作,而且它可能会对模拟器产生不良影响.我不确定你是否注意到了,但与几乎任何实际的物理设备相比,仿真器并不是最快的工具.因此,我认为可能发生的是模拟器正在“播放”声音并认为它在声音实际播放之前已完成,主要是由于模拟器的速度很慢.
在实际设备上试一试,我认为你不会有任何问题.
总结以上是内存溢出为你收集整理的Android 2.2切断MediaPlayer声音播放?全部内容,希望文章能够帮你解决Android 2.2切断MediaPlayer声音播放?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)