Articles of soundpool

通过耳机播放音乐时播放扬声器的声音

我通过耳机播放AudioTrack 。 我只需要将SoundPool发送到内置扬声器,而不会中断通过耳机播放的AudioTrack 。 任何黑客歹徒?

知道在Android 1.6 / 2.0 / 2.1上使用SoundPool加载声音是否成功

在Android 2.2+上有一个名为SoundPool.OnLoadCompleteListener的东西,可以知道声音是否已成功加载。 我的目标是较低的API版本(理想情况下为1.6,但可能是2.1),我需要知道声音是否已正确加载(因为它是由用户选择的)。 这样做的正确方法是什么? 我希望不要用MediaPlayer加载一次声音,如果SoundPool正确的话?

android重复播放没有任何差距的mp3文件

我想重复播放sdcard的mp3文件,没有任何差距。 我正在使用MediaPlayer.setlooping(true)方法重复播放mp3 。 它工作正常。 但它在重复之间给出了几秒钟的惊慌。 我也在寻找soundPools但它也有一些差距。 那么是否有任何类,方法或一些想法可以帮助我消除几秒钟的差距。

我怎么知道声音是否在Android中播放完毕?

我怎么知道声音是否播放完毕? 我想播放2种声音,但我想要播放一种声音,然后等到第一次声音在第二次开始之前完成。 另外,如果我想在声音结束时做其他事情,比如在视图鳍状肢中显示他的下一个视图,我可以这样做吗? 现在我正在使用SoundPool播放我的声音。

android soundpool heapsize溢出

当我在Debug中运行时,我得到了这个错误数百次,它似乎没有影响程序,但我该如何摆脱它? 我知道它可以追溯到基于其他post的SoundPool 09-15 09:03:09.190:ERROR / AudioCache(34):堆大小溢出! 需求尺寸:1052672,最大尺寸:1048576

Android音频:改变音调

SoundPool的Android文档说“应用程序还可以通过实时调整多普勒或合成效果的回放速率来改变音高”。 所以我尝试这样做,使用setRate方法从一个音符到另一个音符平滑变化,但结果很糟糕:声音变化非常粗糙。 这是我试过的代码。 请告诉我是否有更好的方法。 int streamId = soundPool.play (soundId, 1, 1, 1, 0, 1.0f); for (float x = 0; x < 1; x += 0.005) { SystemClock.sleep (10); soundPool.setRate (streamId, 1 + x); }

如何使用SoundPool同步声音

我一直试图在同一时间发出一些声音; 目前我正在使用SoundPool的共享实例。 我想在完全相同的时间播放1,2或3个声音而没有延迟。 当连续多次调用SoundPool.play(…)X时,声音按照人们的想法按顺序播放。 什么是正确的实现这一点,我可以准备所有的声音同时播放,然后将它们作为一个播放? Sudo代码: SoundPool _soundPool = new SoundPool(10, AudioManager.STREAM_MUSIC, 0); _soundPool.load(_context, soundId1, 1); _soundPool.load(_context, soundId2, 1); _soundPool.load(_context, soundId3, 1); _soundPool.play(soundId1, vol, vol, 1, 0, 1f); _soundPool.play(soundId2, vol, vol, 1, 0, 1f); _soundPool.play(soundId3, vol, vol, 1, 0, 1f);

Simutaneosly播放两种声音

我试图在android中同时播放两个声音。我创建了两个MediaPlayers,我正在使用下面的代码。他们正在一个接一个地播放。或者不是一个接一个,但有点延迟到彼此。 private void playSound(){ if (mp1 != null) { mp1.release(); } if (mp2 != null) { mp2.release(); } mp1 = MediaPlayer.create(this, soundArray[0]); mp2 = MediaPlayer.create(this, soundArray[3]); mp1.start(); mp2.start(); } 谢谢

Android MediaPlayer setNextMediaPlayer()替代方案

我最近发布了一个应用程序,用户报告崩溃,因为我的程序包含方法setNextMediaPlayer() 。 我现在意识到这只适用于API 16+,我的应用程序支持API 8+ 。 我想知道是否有另一种方法可以达到同样的效果。 我的应用程序有一些文本到语音,我正在做的是创建一个MediaPlayers的ArrayList ,每个都有一个简短的声音文件,然后一个接一个地播放它们。 如果我从代码中删除此方法,则音频变得太不连贯而无法理解。 我在考虑使用SoundPool类,但是没有OnCompleteListener ,所以我不确定如何做到这一点。 所以基本上我的问题是: 有没有办法在不使用setNextMediaPlayer()方法的情况下在音频文件之间无缝转换? 非常感谢你花时间陪伴! 编辑 我添加了我find的代码 private class CompatMediaPlayer extends MediaPlayer implements OnCompletionListener { private boolean mCompatMode = true; private MediaPlayer mNextPlayer; private OnCompletionListener mCompletion; public CompatMediaPlayer() { try { MediaPlayer.class.getMethod(“setNextMediaPlayer”, MediaPlayer.class); mCompatMode = false; } catch (NoSuchMethodException e) { mCompatMode = true; super.setOnCompletionListener(this); […]

Soundpool没有在android 4.3中循环

我有几个应用程序,其中我使用soundpool循环滴答时钟的声音,这在所有以前版本的Android中工作正常,但升级到Android 4.3之后声音不再循环但只播放一次。 我知道我可以使用MediaPlayer来循环它,但这听起来不太好。 有没有一个简单的解决方法,android将修复bug,或者我必须使用MediaPlayer。