Github项目地址,欢迎star~!
为了方便没有准备好梯子的同学,我把项目在CSDN上打包下载,不过更新会慢一些
MediaPlayer的生命周期
了解MediaPlayer的生命周期的好处是,当我们遇到各种状态异常时,可以很方便的找到出错的原因 ,具体的可以看这篇参考资料
了解了MediaPlayer的生命周期后,我们大概可以把播放器的状态设定成这样(仅供参考):
public enum PanoStatus
{
IDLE, PREPARED,BUFFERING, PLAYING, PAUSED_BY_USER, PAUSED, STOPPED, COMPLETE, ERROR
}
之所以要区分PAUSED
和PAUSED_BY_USER
,是因为当我们的播放器被直接切换到后台时应该暂停,而切换回来时,如果已经被用户暂停,不应该继续播放,否则应该继续播放(当然,这只是个人观点)。
MediaPlayer初始化
MediaPlayer初始化代码可以这样写:
mediaPlayer=new MediaPlayer();
try{
mediaPlayer.setDataSource(context, Uri.parse(videoPath));
}catch (IOException e){
e.printStackTrace();
}
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.setLooping(true);
videoPath是我们通过其他类传递过来的视频地址,为了方便,上面一段代码我直接写到了构造函数中,现在构造函数的形式如下:
public GLRenderer(Context context,String videoPath)