【问题标题】:SoundPool Not Loading in Android AppSoundPool 未在 Android 应用程序中加载
【发布时间】:2011-07-09 04:38:57
【问题描述】:

我正在制作一个应用程序,我试图将单个声音加载到 SoundPool 上,这样我就可以在需要时管理播放速率,在需要时播放它,并在需要时释放它。但是,我的 SoundPool 没有加载。我试图改变很多不同的东西,但似乎没有任何效果。我在 OnLoadComplete 函数中放了一个 Log.d 以查看它是否加载,并且运行时日志没有出现......也许在查看我的代码之后其他人可以帮助我。谢谢!

private int currentVoice = 0;
private SoundPool voices = null;
....
public void onCreate(Bundle savedInstanceState) {
....
    voices = new SoundPool(1, 3, 0);
    voices.setOnLoadCompleteListener(this);
....
}
private void giveSentence() throws IOException {
....
voices.release();
currentVoice = voices.load(this, sentences[index].voice, 1);
voices.play(currentVoice, 1, 1, 1, 0, 1f);

public void onLoadComplete(SoundPool soundPool, int sampleId, int status) {
    soundPool.play(sampleId, 1, 1, 1, 0, 1f);
    boolean loaded = true;
    Log.d("Game","Is it loaded? " + loaded);
}

【问题讨论】:

  • 修复了自己,我在做 voices.release();在加载任何内容之前。出于某种原因,刚刚关闭了 SoundPool。

标签: android audio loading playback


【解决方案1】:

我猜你应该在 onCreate 方法中的某个地方初始化你的声音池。

 private SoundPool voices;

 @Override
 public void onCreate(Bundle savedInstanceState) {
    voices = new SoundPool(1, 3, 0);
    voices.setOnLoadCompleteListener(this);
 }

【讨论】:

  • 对不起,我遗漏了一段代码。这些已经在 onCreate 方法中。所以这不是问题......
【解决方案2】:

修正了自己,我在做 voices.release();在加载任何内容之前。出于某种原因,刚刚关闭了 SoundPool。在我检查它是否已经加载后,取出那条线并做了 voices.release() 。现在可以了。

【讨论】:

    猜你喜欢
    • 2017-02-28
    • 2013-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-15
    • 1970-01-01
    相关资源
    最近更新 更多