Android 如何设置api小于23的mediaPlayer速度
这需要一个api调用23 我正在尝试使用SoundPool,但效果不如MediaPlayer,因为MediaPlayer是SoundPool的替代品Android 如何设置api小于23的mediaPlayer速度,android,android-mediaplayer,Android,Android Mediaplayer,这需要一个api调用23 我正在尝试使用SoundPool,但效果不如MediaPlayer,因为MediaPlayer是SoundPool的替代品 player.setPlaybackParams(player.getPlaybackParams().setSpeed(0.5f)); 使用媒体编解码器类。此类可以对其进行解码,您可以使用解码数据上的音频轨迹来渲染(播放)它。但您需要根据您的速度要求跳过这些示例,才能以特定的速度播放。这种方法应该有效。请参阅android开发者资源中的med
player.setPlaybackParams(player.getPlaybackParams().setSpeed(0.5f));
使用媒体编解码器类。此类可以对其进行解码,您可以使用解码数据上的音频轨迹来渲染(播放)它。但您需要根据您的速度要求跳过这些示例,才能以特定的速度播放。这种方法应该有效。请参阅android开发者资源中的mediacodec和audiotrack。使用媒体编解码器类。此类可以对其进行解码,您可以使用解码数据上的音频轨迹来渲染(播放)它。但您需要根据您的速度要求跳过这些示例,才能以特定的速度播放。这种方法应该有效。请参阅android开发者资源中的mediacodec和audiotrack。您是否在audiotrack.class中尝试了
int-setPlaybackRate(int-sampleRateInHz)
?如何实现它?您可以给出一个示例代码我尝试了audio track类,但它给出了白色声音您尝试过我的答案吗?提供您所做工作的最新信息。您是否在AudioTrack.class
中尝试了int-setPlaybackRate(int-sampleRateInHz)
?如何实现它?您可以给出一个示例代码我尝试了audio-audio-track类,但它提供了白色声音您尝试过我的答案吗?告诉我你做了什么。
final float playbackSpeed=1.5f;
final SoundPool soundPool = new SoundPool(4, AudioManager.STREAM_MUSIC, 100);
final String path=Environment.getExternalStorageDirectory().getAbsolutePath() + "/folioreader/audio"+".mp3";
final int soundId = soundPool.load(path, 1);
AudioManager mgr = (AudioManager) mHalfSpeed.getContext().getSystemService(Context.AUDIO_SERVICE);
final float volume = mgr.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
soundPool.setOnLoadCompleteListener(new SoundPool.OnLoadCompleteListener()
{
@Override
public void onLoadComplete(SoundPool arg0, int arg1, int arg2)
{
soundPool.play(soundId, volume, volume, 1, 0, playbackSpeed);
}
});
soundPool.pause(soundId)