Android MediaPlayer 播放各種來源的音訊檔案,特效控制
阿新 • • 發佈:2019-01-28
MediaPlayer通過資源ID播放Raw目錄下音訊資原始檔:
MediaPlayer mMediaPlayer;
mMediaPlayer = MediaPlayer.create(this, R.raw.bomb); //
mMediaPlayer.setLooping(true); // 設定迴圈播放
mMediaPlayer.start(); // 開始播放
mMediaPlayer.stop(); // 停止播放
// 設定播放下一首音訊的程式碼
mMediaPlayer.reset(); // reset MediaPlayer
try {
mMediaPlayer.setDataSource("/mnt/sdcard/next.mp3" ); // 指定要播放的音訊檔案
mMediaPlayer.prepare(); // MediaPlayer 預處理
mMediaPlayer.start(); // 開始播放
mMediaPlayer.stop(); // 停止播放
} catch (IOException e) {
e.printStackTrace();
}
MediaPlayer播放Asset目錄下音訊檔案:
AssetManager assetManager = getAssets();
try {
AssetFileDescriptor afd = assetManager.openFd ("one.mp3");
MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource(afd.getFileDescriptor()
, afd.getStartOffset()
, afd.getLength());
mediaPlayer.prepare();
mediaPlayer.start();
mediaPlayer.stop ();
} catch (IOException e) {
e.printStackTrace();
}
MediaPlayer播放外部儲存器上的音訊檔案:
try {
mMediaPlayer.setDataSource("/mnt/sdcard/next.mp3"); // 指定要播放的音訊檔案
mMediaPlayer.prepare(); // MediaPlayer 預處理
mMediaPlayer.start(); // 開始播放
mMediaPlayer.stop(); // 停止播放
} catch (IOException e) {
e.printStackTrace();
}
MediaPlayer播放來自網路的音訊檔案:
Uri uri = Uri.parse("http://192.168.8.88/audio/abc.mp3");
MediaPlayer mediaPlayer = new MediaPlayer();
try {
mediaPlayer.setDataSource(this, uri); // 根據URI裝載音訊檔案
mediaPlayer.prepare();
mediaPlayer.start();
} catch (IOException e) {
e.printStackTrace();
}
MediaPlayer 事件監聽器:
mMediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
}
});
mMediaPlayer.setOnErrorListener(new MediaPlayer.OnErrorListener() {
@Override
public boolean onError(MediaPlayer mp, int what, int extra) {
return false;
}
});
mMediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
}
});
mMediaPlayer.setOnSeekCompleteListener(new MediaPlayer.OnSeekCompleteListener() {
@Override
public void onSeekComplete(MediaPlayer mp) {
}
});
mMediaPlayer.setOnBufferingUpdateListener(new MediaPlayer.OnBufferingUpdateListener() {
@Override
public void onBufferingUpdate(MediaPlayer mp, int percent) {
}
});
mMediaPlayer.setOnInfoListener(new MediaPlayer.OnInfoListener() {
@Override
public boolean onInfo(MediaPlayer mp, int what, int extra) {
return false;
}
});
音訊特效控制:
- AcousticEchoCanceler:取消回聲控制器
- AutomaticGainControl:自動增益控制器
- NoiseSuppressor:噪音壓制控制器
- BassBoost:重低音控制器
- Equalizer:均衡控制器
- PresetReverb:預設音聲控制器
- Visualizer:示波器