gpt4 book ai didi

Android Mediaplayer 音量波动

转载 作者:行者123 更新时间:2023-12-03 02:20:34 25 4
gpt4 key购买 nike

我目前正在开发一个必须播放音频的应用程序。我有一种按顺序播放一系列.mp3 的方法。这是方法:

/**
* Plays a series of sounds in order without delay.
*
* @param audioResourceIds
* An in-order array of the audio asset resources to play.
* */
public void playQueuedPlaylist(int[] audioResourceIds)
{
float lastPlayedSoundDuration;

for(int i = 0; i<audioResourceIds.length; i++)
{
lastPlayedSoundDuration = playMedia(audioResourceIds[i], null);
try
{
Thread.sleep((long)lastPlayedSoundDuration);
}
catch(Exception eh)
{
Log.v("BulacsAlmighty","Exception caught at playQueuedPlaylist()");
}
}
}

/**
* Used to play voice overs
*
* @param index
* id of the sound
* @param listener
* on completion listener
*/

public int playMedia(int index, OnCompletionListener listener)
{

MediaPlayer mp = MediaPlayer.create(context, index);
mp.setVolume(streamVolume, streamVolume);


stopMedia(index); // Stops the sound if it still is playing.

mp.start();

return mp.getDuration();
}

问题是声音有时不播放。 而且他们玩的时候,时机正确,顺序正确, 但最后播放的音频资源的音量明显低于之前播放的其他声音。

告诉我,我哪里做错了!?

最佳答案

如果您不存储和释放相关的 MediaPlayer,如何停止以前的轨道?那个轨道? stopMedia如何工作?
setVolume如果 MediaPlayer 将失败处于错误状态。请设置On<Event>Listeners这样你就可以真正了解之前播放的MediaPlayer发生了什么s。特别是,您可能对实现 OnInfoListener 感兴趣。和 OnPreparedListener .

另外,streamVolume 怎么样?修改的?您可能在某个地方遇到了竞争条件,并且该代码可能正在设置 streamVolume先发制人。请检查所有正在修改的代码 streamVolume .

关于Android Mediaplayer 音量波动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13522574/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com