MediaPlayer使用

1.MediaPlayer

//设置音频流类型(即以何种类型播放)

mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);//媒体、视频、游戏

mediaPlayer.setAudioStreamType(AudioManager.STREAM_RING);//铃声(lai'di)

mediaPlayer.setAudioStreamType(AudioManager.STREAM_ALARM);//闹铃

mediaPlayer.setAudioStreamType(AudioManager.STREAM_NOTIFICATION);//提示音(通知)

//自带音频
        MediaPlayer mediaPlayer=MediaPlayer.create(MainActivity.this,R.raw.music);
        mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);//设置音频流类型(即以何种类型播放)
        mediaPlayer.start();
//SD卡中小资源
        MediaPlayer mediaPlayer=new MediaPlayer();
        mediaPlayer.setDataSource("SD卡资源路径");//设置资源
        mediaPlayer.prepare();//解析
        mediaPlayer.start();
//SD卡中大资源或网络音频
        MediaPlayer mediaPlayer=new MediaPlayer();
        mediaPlayer.setDataSource("SD卡资源路径或网络资源(http://www.xxx.mp3)");//设置资源
        mediaPlayer.prepareAsync();//解析
        //设置解析监听
        mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
            public void onPrepared(MediaPlayer mediaPlayer) {
             //解析完成时执行本方法  
             mediaPlayer.start();   
            }
        });
//MediaPlayer使用结束时

mediaPlayer.stop();//停止播放
mediaPlayer.release();//释放资源

2.MediaPlayer常用方法

mediaPlayer.pause()  //暂停

mediaPlayer.reset()  //重置MediaPlayer对象(释放资源,重新使用需再次设置资源)

mediaPlayer.seekTo(int i)  //从指定位置开始播放音频

mediaPlayer.isPlaying()  //是否在播放

mediaPlayer.getDuration()  //获取时长(毫秒)

mediaPlayer.getCurrentPosition()  //获取当前播放位置

mediaPlayer.start()  //开始播放

mediaPlayer.prepare()  //解析(小音频)

mediaPlayer.prepareAsync()  //解析(大音频、网络资源)

mediaPlayer.stop()  //停止播放

mediaPlayer.release()  //释放资源

3.MediaPlayer与SurfaceView配合使用播放视频

  (1) 创建MediaPlayer(媒体播放器)

//应用自带资源
MediaPlayer mediaPlayer=MediaPlayer.create(MainActivity.this,R.raw.~);
mediaPlayer.setAudio
 
//小音频视频
MediaPlayer mediaPlayer=new MediaPlayer();
mediaPlayer.setDataSource("~");
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
 
 
//大音频
MediaPlayer mediaPlayer=new MediaPlayer();
mediaPlayer.setDataSource("~");
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);

  (2)等待SurfaceView创建完成,并将SurfaceHolder绑定给MediaPlayer,绑定后进行解析,解析后开始播放

//应用自带资源
SurfaceView surfaceView=findViewById("~");
SurfaceHolder holder=surfaceView.getHolder();                //获得持有者
holder.addCallback(new Callback(){                           //添加回调
   public void surfaceCreated(SurfaceHolder surfaceHolder){
          
          mediaPlayer.Display(surfaceHolder);                //绑定
          
          //自带资源无需解析
 
          mediaPlayer.start();
   }
});
 
//小音频视频
SurfaceView surfaceView=findViewById("~");
SurfaceHolder holder=surfaceView.getHolder();                //获得持有者
holder.addCallback(new Callback(){                           //添加回调
   public void surfaceCreated(SurfaceHolder surfaceHolder){
          
          mediaPlayer.Display(surfaceHolder);                //绑定
          
          mediaPlayer.prepare();                             //解析
 
          mediaPlayer.start();                               //无需等待解析
   }
});
 
//大音频视频,网络资源
SurfaceView surfaceView=findViewById("~");
SurfaceHolder holder=surfaceView.getHolder();                //获得持有者
holder.addCallback(new Callback(){                           //添加回调
   public void surfaceCreated(SurfaceHolder surfaceHolder){
          
          mediaPlayer.Display(surfaceHolder);                //绑定
          
          mediaPlayer.prepareAnsy();                         //解析
 
          mediaPlayer.setOnPrepareListener(new OnPrepareListener(){
               public void onPrepared(MediaPlayer player){
 
                    mediaPlayer.start();                     //解析完成才能播放
 
          });
   }
});
 
 

  (3)注意事项:

    1*  SurfaceView创建完成后(执行回调后)才能将SurfaceHolder绑定给MediaPlayer

    2*  绑定后再解析

    3*  解析完成后再播放

    4*  SurfaceView在Activity生命周期onRestart()中会重建,即再次调用Callback()中的surfaceCreated()方法,所以不能在此方法中创建MediaPlayer;且因为重建,MediaPlayer的绑定及解析需要在本方法中添加。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
MediaPlayerAndroid中用于播放音频和视频的类。它提供了一系列方法和回调函数,可以控制媒体的播放、暂停、停止以及获取和更新播放进度等操作。 在使用MediaPlayer之前,需要先创建一个MediaPlayer对象,并设置数据源。有两种方式可以创建MediaPlayer对象,一种是直接使用new关键字创建一个实例,然后调用setDataSource()方法设置数据源;另一种是使用MediaPlayerUtil类进行封装,通过init()方法进行初始化,并设置回调函数监听媒体状态的变化。 使用MediaPlayer时,可以通过调用start()方法开始播放音频,通过onPrepared()回调函数监听音频加载完成的事件,在此方法中可以取消加载进度条并开始播放。通过onSeekUpdate()回调函数可以更新播放进度条的状态。onCompletion()回调函数可以监听音频播放完成的事件。如果发生错误,可以调用reset()方法重置UI状态,并返回true表示处理错误。 关于MediaPlayer的更多详细信息,可以参考MediaPlayer的官方文档。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Android 使用MediaPlayer播放音频详解](https://blog.csdn.net/baidu_38627723/article/details/120429916)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

在下嗷呜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值