Articles of soundpool

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文件的音调在这里 。

使用SoundManager播放多个声音

如果我播放单个声音,它运行良好。 添加第二个声音导致它崩溃。 任何人都知道是什么原因造成的问题 private SoundManager mSoundManager; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.sos); mSoundManager = new SoundManager(); mSoundManager.initSounds(getBaseContext()); mSoundManager.addSound(1,R.raw.dit); mSoundManager.addSound(1,R.raw.dah); Button SoundButton = (Button)findViewById(R.id.SoundButton); SoundButton.setOnClickListener(new OnClickListener() { public void onClick(View v) { mSoundManager.playSound(1); mSoundManager.playSound(2); } }); }

Androidaudio编程噩梦 – soundpool,audiotrack arrghh?

我已经构build了一个简单的音乐音序器Android应用程序,播放多个audio文件。 最初我使用SoundPool来播放MP3文件,它在2.3.4上使用旧的HTC Droid Incredible完美工作。 然后我在Galaxy Nexus上运行4.3,testing性能非常糟糕。 audio时间到处都是,有毛刺/点击/stream行音乐。 所以我花了好几天的时间让一个使用AudioTrack的播放器,包括一个mp3解码器,并且在Galaxy和HTC上都能很好地工作。 现在我刚刚在Nexus 4上运行(运行4.3),性能很糟糕 – 时间到了。 SoundPool甚至可以在此设备上提供更好的性能。 我真的很沮丧,不知道怎么做才能完成我的应用程序,所以我会很感激,如果有人可以帮助我。 我已经把我的audio播放器的一些代码示例下面。 我已经尝试了所有我能想到的方法,包括更改缓冲区大小,使用AudioTrack.MODE_STATIC等。新的Google设备具有低延迟audio,所以我的旧机器人上的一切工作方式都变得非常奇怪! 提前致谢 /** * Play note */ public void playNote(String note, float vol) { PlayThread oldThread = threadMap.get(note); if(oldThread != null) { //Cancel timer if(oldThread.timer != null) { oldThread.timer.cancel(); oldThread.timer.purge(); oldThread.timer = null; } //Stop oldThread.requestStop(); threadMap.remove(note); } //Play if […]

Android:录制SoundPool输出

我允许用户按下button来通过SoundPool播放声音。 是否有可能录制任何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最后:也许有人会在这里find它并阅读它。 似乎soundpool不能发挥更多的5秒。 这是他最大的,更长的声音使用MediaPlayer。 我希望你不会像我那样花太多时间)

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

这听起来很简单,我不明白为什么我找不到答案大声笑 我有一个工作的声音池类(感谢教程和我做了一些调整),它工作正常。 现在的问题是我想要随意更换我的背景音乐。 (并不总是在一个循环中有相同的音乐,但有2或3,当一个完成,我打其他2人之一)。 问题是我找不到通知音乐播放完毕的方法。 有任何想法吗 ? 贾森

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秒的声音加载完成?