带有 soundpool 的循环轨道
Posted
技术标签:
【中文标题】带有 soundpool 的循环轨道【英文标题】:Looping track with soundpool 【发布时间】:2012-08-21 03:15:02 【问题描述】:我需要在我的应用程序中循环播放音乐而不滞后。在 android 4.0 中,相同的代码无法在没有重要延迟的情况下循环。
所以我尝试使用 SoundPool。如果我使用
int NO_LOOP=0;
sp.play(ID, 1, 1, 0, NO_LOOP, 1);
声音播放没有问题,但如果我使用
int LOOP=-1;
sp.play(ID, 1, 1, 0, LOOP, 1);
它不起作用并出现此消息:
08-21 05:12:48.243: E/AudioTrack(15035): AudioFlinger could not create track, status: -12
08-21 05:12:48.243: E/SoundPool(15035): Error creating AudioTrack
怎么了?我该如何解决这个问题?
【问题讨论】:
【参考方案1】:为了进行无间隙循环,您必须使用小于 1mb 的 WAV 文件。否则,循环播放的 -1 设置将导致您的文件无法播放。
这行得通,刚刚测试过。
【讨论】:
那么,我怎样才能无间隙播放超过 1mb 的声音呢?我不敢相信没有办法…… 有一种方法可以使用 MediaPlayer 类。以上是关于带有 soundpool 的循环轨道的主要内容,如果未能解决你的问题,请参考以下文章
设置类似于 SoundPool.setPriority 的 AudioTrack 优先级