用TextureView播放网络视频

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用TextureView播放网络视频相关的知识,希望对你有一定的参考价值。

参考技术A 用VideoView播放视频的话,嵌套ScrowView会有滑动的问题,所以选择用TextureView和MediaPlayer来播放网络视频。
1:给textureView添加监听,创建Surface实例,用来交给MediaPlayer
textureView.setSurfaceTextureListener(new TextureView.SurfaceTextureListener()
//textureView可用
@Override
public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height)
//添加集合的原因是用来区分列表中不同的surface
mSurfaces.add(new Surface(surface));


2:给点击事件用来播放网络视频
textureView.ivThumbnail.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
try
MediaPlayer mPlayer = new MediaPlayer();
mPlayer.reset();
mPlayer.setDataSource(list.get(position).getUrl());
//让MediaPlayer和TextureView进行视频画面的结合
mPlayer.setSurface(mSurfaces.get(videoPosition));
//设置监听
mPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener()
@Override
public void onPrepared(MediaPlayer mp)
mp.start();
//开始播放后隐藏图片,防止空白情况发生
ivThumbnail.setVisibility(View.GONE);

);
mPlayer.setScreenOnWhilePlaying(true);//在视频播放的时候保持屏幕的高亮
//异步准备
mPlayer.prepareAsync();
catch (Exception e)
e.printStackTrace();


);
3:完成以上两步就可以播放视频了,最后是获取缩略图
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
int kind = MediaStore.Video.Thumbnails.MINI_KIND;
if (Build.VERSION.SDK_INT >= 14)
retriever.setDataSource(url, new HashMap<String, String>());
else
retriever.setDataSource(url);

Bitmap thumbnail = retriever.getFrameAtTime();

Android 视频播放

1.用MEDIAPLAYER+TEXTUREVIEW封装好的视频播放器,可直接使用(附DEMO)

地址:【Android 前沿技术】用MediaPlayer+TextureView封装好的视频播放器,可直接使用(附demo) - 灰信网(软件开发博客聚合) https://www.freesion.com/article/3306560066/ 

下载地址:GitHub - colinNaive/VideoApplication: Android短视频App 视频轮播VideoView TextureView MediaPlayer2https://github.com/colinNaive/VideoApplication

2.一个视频播放第三方(JCvideoPlayer)以及部分调整

GitHub - Jzvd/JZVideo: 高度自定义的安卓视频框架 MediaPlayer exoplayer ijkplayer ffmpeghttps://github.com/Jzvd/JZVideo 3.GitHub - ashLikun/JCVideoPlayerhttps://github.com/ashLikun/JCVideoPlayer

4. https://github.com/qiushi123/VideoDemoQclhttps://github.com/qiushi123/VideoDemoQcl

以上是关于用TextureView播放网络视频的主要内容,如果未能解决你的问题,请参考以下文章

在 TextureView 上播放视频

在recyclerview中使用textureview播放视频

Android 视频播放

Android 视频播放

Android 视频播放

BufferQueue 已被废弃:使用 TextureView 播放视频时