美文网首页
播放音乐

播放音乐

作者: dev晴天 | 来源:发表于2018-08-11 19:36 被阅读0次
    1 
    E/MediaPlayer: start called in state 2
    E/MediaPlayer: error (-38, 0)
    E/MediaPlayer: Error (-38,0)
    
    播放音乐 不进行mediaPlayer.prepare();会报如上错误。
    
    
    2
    
    下面正确代码:
    
    
     MediaPlayer mediaPlayer = new MediaPlayer();
            Log.d("TAG", "doClick: "+"测试1");
            try {
                mediaPlayer.setDataSource("mnt/sdcard/1.mp3");
                Log.d("TAG", "doClick: "+"测试2");
                mediaPlayer.prepare();
                mediaPlayer.start();
                Log.d("TAG", "doClick: "+"测试3");
            } catch (IOException e) {
                e.printStackTrace();
            }
     
    3
       音乐常用api:
    
       setDataSource(String) 要播放歌曲的路径(网络地址 本地文件路径都可以 )
    
       开始播放 start()播放前必须做准备(mediaPlayer.prepare()播放本地使用同步 播放异地 网络的使用异步prepareasync())
    
        暂停   mediaPlayer.pause();
    
        重新播放   mediaPlayer.start();// 再次调用 重新播放
    
        播放总时间 mediaPlayer.getDuration();
     
       当前播放位置:int currentPosition = mediaPlayer.getCurrentPosition();//当前播放位置
    
    一般与定时器连用:
    
      // 获得对当前的长度(总不能拿一次 必须进行实时更新  使用timer定时器实时更新)
            Timer timer = new Timer();
            TimerTask task = new TimerTask() {
                @Override
                public void run() {
                    int currentPosition = mediaPlayer.getCurrentPosition();//当前播放位置
                }
            };
            // 100毫秒后 每个1秒执行run方法
            timer.schedule(task, 100, 1000);
        }
    
    mediaPlayer.reset();//可以防止bug  播放前先设置线
    
    
    seekTo()// 播放指定位置
    
    
    
    4   播放网络歌曲
    
    
       public void doclick(View view){
            MediaPlayer mediaPlayer = new MediaPlayer();
            try {
                mediaPlayer.setDataSource("http://192.168.56.1/Demo/1.mp3");
                mediaPlayer.prepare();
                mediaPlayer.start();
    
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
    
    5 mediaplayer的声明周期:
    
    同步和异步
    同步:一般播放本地音乐
    异步:播放网络音乐 不用开启子线程
    
    
    

    相关文章

      网友评论

          本文标题:播放音乐

          本文链接:https://www.haomeiwen.com/subject/maadbftx.html