Android 平台视频播放实现方式
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 视频大小回调,动态改变视频大小
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论