我正在创建一个游戏,我在游戏中有一些音频剪辑。我正在使用音频池而我只使用2个音频剪辑。它们都是mp3格式,1是700kb,另一个是800字节。
首次加载游戏时,我正在尝试播放700kb的音频片段。这是一个背景声音,只要应用程序打开,它就会永远循环播放。然而,我尝试过的一切都失败了。我能够让它工作的唯一方法是在启动时启动一个线程并让线程休眠15秒。之后它会调用启动音频然后播放,但如果线程被破坏,它将用它杀死声音。
我假设音频可能正在缓冲,这就是为什么它不能在开始时播放?你还必须从一个线程进行所有音频调用吗?
答案 0 :(得分:1)
我刚刚在Activity onCreate()方法中使用了这段代码,它运行正常:
public class LaunchActivity extends Activity {
private MediaPlayer mp;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.whatever);
setVolumeControlStream(AudioManager.STREAM_MUSIC);
mp = MediaPlayer.create(this, R.raw.a);
mp.start();
}
如果此实例没有停止说明,它将继续播放应用程序中的所有活动,如果您退出应用程序,它仍将播放,当您返回时,新实例将开始播放旧实例同一时间!媒体播放器是它自己的进程,所以我认为不需要另一个线程。
你确定你的MP3文件没有问题并且让系统崩溃吗?