这里写图片描述

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:示波器
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐