Articles of soundpool

Soundpool只播放文件的前5秒。 为什么?

我在我的应用程序中使用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 Last:也许有人会在这里find它并阅读它。 似乎soundpool不能播放超过5秒。 这是他的最大值,因为更长的声音使用MediaPlayer。 我希望你不会像我那样花那么多时间)

Android SoundPool:播放结束时收到通知

这个声音很简单,我无法弄清楚为什么我找不到答案哈哈 我有一个工作的声音池类(感谢教程和我做的一些调整),它工作正常。 现在的问题是我希望能够随机改变我的背景音乐。 (并不总是在循环中有相同的音乐,但有2或3,当一个完成时,我播放其他2个中的一个)。 问题是我找不到通知音乐播放完毕的方法。 有任何想法吗 ? 贾森

SoundPool:创建AudioTrack时出错

我在使用SoundPool时遇到问题,因为它拒绝使用我的.ogg文件。 我收到此错误: AudioFlinger无法创建曲目,状态:-12 创建AudioTrack时出错 我find了一个关于这个的线索,(可能的) 答案是: 确保使用具有恒定比特率的.ogg媒体文件! 是这样的吗? (有人请确认或取消) 如果是 – 使用哪个应用程序(Audacity不支持.ogg自定义导出设置)。 如果不是 – 还有什么可能是错的? 作为旁注 – 在我使用MediaPlayer之前,但现在我想播放一些并行的声音。

Android:如何使用OpenSL ES更改音乐的播放速率

我正在制作一个音乐播放器,我需要在不改变音高的情况下改变速度(音乐的播放速度)。 我无法find任何本机安卓类。 我试过SoundPool,但它不适用于大型音乐文件,它似乎也不适用于许多设备。 我也试过AudioTrack,但又没有运气。 现在我正在尝试使用OpenSL ES处理音乐的android NDK音频示例。 现在我只想在此示例中添加设置播放速率function。 任何人都可以告诉我如何在其中添加更改播放率function?

SoundPool中的流量与AudioManager中的音量

我感到很困惑… SoundPool.play(int soundID, float leftVolume,float rightVolume ,int priority,int loop,float rate) 这里的体积是0.0到1.0 我见过的教程建议将流量计算为: AudioManager mgr = (AudioManager) getContext().getSystemService(Context.AUDIO_SERVICE); int streamVolume = mgr.getStreamVolume(AudioManager.STREAM_MUSIC); streamVolume = streamVolume / AudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC); mSoundPool.play(mSoundPoolMap.get(index), streamVolume, streamVolume, 1, 0, 1f); 这是有道理的。 我假设这个卷会覆盖用户在手机中设置的全局媒体音量,我可以通过改变soundPool中的流量来独立改变我的应用程序的音量。 但实际上它就像乘数一样 – 如果我在soundpool中设置0.5音量,实际音量将始终是全局音量的一半。 很容易重现: 将手机设置中的全局媒体音量设置为最大值 使用soundpool.play将活动中的音量设置为0.5 – 播放声音 将soundpool.play中的音量设置为1 – 播放声音,它会大两倍 有人可以解释为什么它会这样吗? 是传递给SoundPool.play方法的音量真的是全球音量的乘数吗?

Soundpool样本没有准备好

我有一个.wav文件,我想在我的游戏中使用,目前我正在加载游戏中每个活动的onCreate()声音。 soundCount = soundpool.load(this,R.raw.count, 1); 活动开始后将播放声音。 soundpool.play(soundCount, 0.9f, 0.9f, 1, -1, 1f); 问题有时我会遇到错误”sample x not ready” 。 是否可以在开始游戏时加载.wav文件并将其保存在内存中并在以后的游戏中使用它? 或者是否可以等待1-2秒以使声音加载完成?

Android MediaPlayer setNextMediaPlayer()替代

我最近发布了一个应用程序,用户报告崩溃,因为我的程序包含了setNextMediaPlayer()方法。 我现在意识到, 这只适用于API 16 +,我的应用程序支持API 8 + 。 我想知道是否有另一种方法达到同样的效果。 我的应用程序有一些文本到语音,我正在做的是创buildMediaPlayers ArrayList ,每个有一个短的声音文件,然后一个接一个地播放它们。 如果我从代码中删除这个方法,那么audio变得太不明了。 我正在考虑使用SoundPool类,但没有OnCompleteListener ,所以我不知道该怎么做。 所以基本上我的问题是: 是否有一种方法可以在不使用setNextMediaPlayer()方法的情况下在audio文件之间进行无缝转换? 非常感谢你花时间陪伴! 编辑 我添加了这个代码,我发现 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 […]

Soundpool不在Android 4.3中循环

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

Soundpool加载声音名称为“OMX.qcom.audio.decoder.aac”的组件已经存在,忽略了这个

我在后台应用程序的onCreate方法中实现了加载所有的声音。 但是当我加载声音时会出现这样的错误: E / OMXMaster:名称为“OMX.qcom.audio.decoder.aac”的组件已经存在,忽略了这个。 这里有什么问题? 任何人有任何想法? 提前致谢 private void loadAllSounds() { new Thread(new Runnable() { @Override public void run() { soundPool.load(appContext, R.raw.compose_sound_0, 1); soundPool.load(appContext, R.raw.compose_sound_1, 1); soundPool.load(appContext, R.raw.compose_sound_2, 1); soundPool.load(appContext, R.raw.compose_sound_3, 1); } }).start(); }

Androidaudio效果的WAV文件并保存

需求 Android在SD卡上打开一个.wav文件,播放它,添加一些效果(如回声,音高等),保存文件的效果。 简单:( 我知道的 我可以打开并使用Soundpool或MediaPlayer播放文件。 在使用两者的同时我可以给予一些效果。 即为媒体播放器我可以设置环境混响效果。 使用SoundPool我可以设置播放速度,这就像音高转换。 我现在成功地实施了这些。 但是这两个类都没有任何方法来保存播放的文件。 所以我只能玩,我不能保存音乐的效果。 我想知道的 除了MediaPlayer或SoundPool之外,是否还有其他任何兴趣类别? 不要介意保存,你只是提到课程,我会做与他们保存文件的研究。 任何第三方库,我可以添加效果和保存? 如果它是开放源代码和免 但即使它是专有的,也要提及它们。 任何其他地方,我可以看看。 OpenAL是否支持语音过滤和语音定位? 它会与Android的工作? 准备做肮脏的工作。 你请借给我path.. 编辑: 做了一些更多的search,并遇到AudioTrack 。 但它也不支持保存到文件。 所以没有运气也.. 编辑 好的,如果我自己做了呢? 从wav文件中获取原始字节,然后处理。 我用AudioRecord录制了一个wav文件,得到了一个wav文件。 有什么资源描述低级别的audio处理(我的意思是在字节级别)。 编辑 恩惠的时间到了,我得到了唯一的回报。 7天后,我明白了 我们无法保存我们使用MediaPlayer,AudioTrack等播放的内容 没有可用的audio处理库。 你可以得到原始的WAV文件,并自己做audio处理。 答案给了一个很好的包装类读/写wav文件。 一个很好的java代码来读取和改变wav文件的音调在这里 。