我目前正在尝试使用SoundPool API在我的Android应用程序中播放声音。播放声音不是问题。现在我想停止声音,稍后从头开始重新启动。但是当我调用stop函数然后play()时,声音不会播放。这里是一些代码:
加载声音:
soundId = soundPool.load(context, fileId, 1);
播放声音:
streamId = soundPool.play(soundId, 1.0f, 1.0f, 1, -1, 1);
停止声音:
soundPool.stop(streamId);
我也尝试在第二次播放之前重新加载声音,但这并没有解决问题。
当我使用暂停/恢复时,声音会从停止的位置开始播放(但是我总是希望它从开头开始)。
任何帮助将不胜感激。
编辑:
我刚刚发现一些奇怪的事情。当我使用soundpool.stop()时,每隔一次调用soundpool.play()就会有效。因此,第一次调用play()播放声音,第二次不播放,第3次、第5次、第7次...调用都会播放声音。当我使用soundpool.pause()然后play()时,每隔三次才有效。因此,第1次、第4次、第7次...调用play()将开始播放声音。
这是一个错误吗?还是我使用方法不正确?