Android 平台视频播放实现方式 - 文章教程

Android 平台视频播放实现方式

发布于 2021-02-19 字数 1869 浏览 1010 评论 0

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 视频大小回调,动态改变视频大小

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

目前还没有任何评论,快来抢沙发吧!

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

2583 文章
29 评论
84935 人气
更多

推荐作者

清欢

文章 1 评论 0

贱贱哒

文章 3 评论 0

悸初

文章 2 评论 0

西瓜杏

文章 0 评论 0

各自安好

文章 0 评论 0