【发布时间】:2012-11-02 21:03:08
【问题描述】:
我在我的应用程序中使用 Soundpool,到目前为止效果很好,但我确实有一个 10 秒的 wav 文件。不幸的是,soundpool 只播放前 5 秒。如何让 soundpool 播放整首曲目?我已将 wav 转换为 -- ogg 和 mp3 仍然是同样的问题。它只播放前 5 秒。任何帮助将不胜感激。
//set up audio player
mSoundPool = new SoundPool(20, AudioManager.STREAM_MUSIC, 0);
//load fx
mSoundPoolMap.put(RAW_1_1, mSoundPool.load(this, R.raw.loop1, 1));
//playing soundpool
case R.id.button1:
mSoundPool.stop(mStream1);
mStream1= mSoundPool.play(mSoundPoolMap.get(RAW_1_1), streamVolume, streamVolume, 1, LOOP_1_TIME, 1f);
UPD 最后:也许有人会在这里找到并阅读它。似乎 soundpool 不能播放超过 5 秒。这是他的最大值,对于更长的声音使用 MediaPlayer。我希望你不会像我那样花太多时间)
【问题讨论】:
-
@Yahor10,我已经添加了一段代码,你也想要那个 wav 文件吗?因为我尝试过使用其他 wav,所以相同的结果不超过 5 秒
-
你的 logcat 中有什么东西吗?我知道 soundpool 文件被限制为相当短(1MB 未压缩的 PCM 数据),也许它太长了?我认为 logcat 中应该有一些消息。
-
@Tim logcat 很清楚,这里什么都没有,我所有的文件都不超过 1 mb
-
同样的问题,但我对任何文件的限制为 10 秒 - 18、21 秒长,无论如何。让我发疯
-
@cooervo,我有一个带有 4 个 MediaPlayers 按钮的音乐应用程序。因此,所有这 4 个按钮都可以同时激活,我对同时运行 4 个 Mediaplayer 循环没有任何问题。因此,它不会使您的应用程序崩溃。确认的。这是很久以前的事情了,我相信现在它已经有了很大的改进。