您当前的位置:首页 > 计算机 > 编程开发 > 安卓(android)开发

Android 平台视频播放实现方式

时间:12-14来源:作者:点击数:
CDSY,CDSY.XYZ

Android 平台视频播放实现有多种方式: VideoView 和 MediaPlayer 是最常用的,显示启动调用本地播放器。

MediaPlayer

mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
Class<MediaPlayer> clazz = MediaPlayer.class;
Method method = clazz.getDeclaredMethod("setDataSource", String.class, Map.class);
method.invoke(mediaPlayer, CURRENT_PLAYING_URL, MAP_HEADER_DATA);
mediaPlayer.setLooping(CURRENT_PLING_LOOP);//是否循环播放
mediaPlayer.setOnPreparedListener(MediaManager.this);
mediaPlayer.setOnCompletionListener(MediaManager.this);
mediaPlayer.setOnBufferingUpdateListener(MediaManager.this);
mediaPlayer.setScreenOnWhilePlaying(true);//设置播放时常亮
mediaPlayer.setOnSeekCompleteListener(MediaManager.this);
mediaPlayer.setOnErrorListener(MediaManager.this);
mediaPlayer.setOnInfoListener(MediaManager.this);
mediaPlayer.setOnVideoSizeChangedListener(MediaManager.this);
mediaPlayer.prepareAsync();//异步准备完成,会触发OnPreparedListener.onPrepared(),进而进入Prepared状态
mediaPlayer.setSurface(new Surface(savedSurfaceTexture));

MediaPlayer 注意事项

  • 其中MediaPlayer 提供了一个 setDataSource 方法设置播放的地址,在这里用到反射方法设置播放地址。
  • prepareAsync() 和 prepare() 同步和异步方式 Prepares the player。
  • SurfaceTexture savedSurfaceTexture 对于 mediaPlayer.setSurface 设置对象必须为 Surface ,所有需要重新构造。

MediaPlayer 回调方法

  • setOnPreparedListener 视频加载完成,准备进入播放状态
  • setOnBufferingUpdateListener 视频缓冲更新进度条 progressBar.setSecondaryProgress(bufferProgress)
  • setOnCompletionListener 视频播放完成回调
  • setOnErrorListener 视频播放中网络等错误回调
  • setOnVideoSizeChangedListener 视频大小回调,动态改变视频大小
CDSY,CDSY.XYZ
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐