【问题标题】:Set pitch of a song being played in Android MediaPlayer设置在 Android MediaPlayer 中播放的歌曲的音高
【发布时间】:2012-11-05 09:30:22
【问题描述】:

我需要设置在媒体播放器中播放的歌曲的音高。我知道声音池有助于设置音高,但我使用 MediaPlayer(因为我也需要混响效果)来播放曲目,我需要设置正在播放的曲目的音高。任何人有任何线索吗?

【问题讨论】:

  • 无法使用媒体播放器设置音高。您可以在 Sound pool 中设置音高。
  • 但我也想要混响效果...即..我有几个开关来调整效果..包括音高、混响效果、低音增强等。如果我使用声音池,我不能访问混响效果。
  • Hay Sreekant,我也面临同样的问题。你能告诉我你是如何解决这个问题的......?

标签: android media-player pitch


【解决方案1】:

Android 6.0 为MediaPlayer 添加了PlaybackParams。我刚刚在模拟器中测试了这个:

String recordingPath = recordingDirectory + File.separator + "music.mp3";
MediaPlayer audioPlayer = MediaPlayer.create(getApplicationContext(), Uri.parse(recordingPath));
audioPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
PlaybackParams params = new PlaybackParams();
params.setPitch(0.75f);
audioPlayer.setPlaybackParams(params);
audioPlayer.start();

【讨论】:

  • setPitch()中的float如何表示音高的变化?
  • 音高值是频率比,因此 setPitch(.5) 会将音高降低一个八度。我使用此页面上的公式将美分转换为频率比率:sengpielaudio.com/calculator-centsratio.htm
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-23
  • 1970-01-01
  • 2015-03-09
相关资源
最近更新 更多