您的位置:首页 > 移动开发 > Android开发

Android MediaPlayer 播放各种来源的音频文件,特效控制

2017-08-17 17:24 501 查看


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:示波器
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: