Android 平台视频播放实现方式

发布于 2021-02-19 11:09:00 字数 1678 浏览 1363 评论 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 视频大小回调,动态改变视频大小

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

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

0 文章
0 评论
84960 人气
更多

推荐作者

lorenzathorton8

文章 0 评论 0

Zero

文章 0 评论 0

萧瑟寒风

文章 0 评论 0

mylayout

文章 0 评论 0

tkewei

文章 0 评论 0

17818769742

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文