Android 播放本地 ts 格式视频
Android 播放本地 ts 格式视频
上一篇文件讲述了如何录制 ts 格式的视频,那么如何播放录好的 ts 格式视频呢。
我一开始使用 MediaPlayer + SurfaceView 组合实现,我在代码中加了一个 mp4 格式的过滤,导致我播放时没有播放成功,误以为 MediaPlayer 不支持 ts 格式视频,看许多文档说明,也都是说 MediaPlayer 支持的格式为 mp4,3gp,mkv,webm,让我更确信了这点。
搜索 Google 文档,官方文档说 ExoPlayer 这个播放器功能强大,什么都支持,于是我就去研究这个开源播放器了。不过给大家一个很不错的链接,学习这篇文章基本就足够了。
【https://www.iambigboss.top/post/37754_1_1.html】,默认可以播放本地的 ts 格式视频,但是 1920 x 1080 的却播放不了,后来发现,在创建 MediaSource 时,需要设置 TS 的 Flags,基本如下:
DefaultExtractorsFactory defaultExtractorsFactory = new DefaultExtractorsFactory();defaultExtractorsFactory.setTsExtractorFlags(FLAG_DETECT_ACCESS_UNITS | FLAG_ALLOW_NON_IDR_KEYFRAMES);return new ExtractorMediaSource.Factory(dataSourceFactory).setExtractorsFactory(defaultExtractorsFactory).createMediaSource(uri);
我测试的时候,发现 FLAG_DETECT_ACCESS_UNITS 这个 flags 对我有效的,github 的 issue 中,有人指出 FLAG_ALLOW_NON_IDR_KEYFRAMES 这个有效。
但是这个也有点问题,播放我的 ts 视频时,它的进度条那里有问题,读不出一些参数,导致进度条无法拖拽控制,无法快进和快退。
后来我尝试了一下 VideoView 这个控件,这个控件也是可以播放 ts 格式视频的,可以使用官方的 MediaController 作为菜单栏控制,也可以自己写一个菜单栏控制,然而我发现 VideoView 内部也是 MediaPlayer 实现的,我仔细读了读我之前的视频播放代码,发现了 mp4 文件过滤的这个问题,去掉之后,发现 MediaPlayer 也是可以播放 ts 格式的,视频的播放时长也可以获取到,可以自定义一个 SeekBar 实现拖拽播放。
Android 播放本地 ts 格式视频相关推荐
- android xml mpg格式,急求: android如何对mpg格式视频实现在线播放?
急求: android怎么对mpg格式视频实现在线播放??? 对于3GP格式的视频都直接可以进行播放,但是对mpg格式谈话对话框提示无法播放此视频.是不是mpg格式的还需要我特别进行格式转化呢? 播放 ...
- android 图片读写,Android读取本地照片和视频相册
前言 项目中经常要选择本地照片或者视频的需求,如果去扫描整个SD卡就太耗时间,其实Android系统在启动时就已经把整个设备中的多媒体文件信息(文件名,类型,大小等)都存到了数据库,然后提供了Cont ...
- 解决WIN10播放AVI等格式视频黑屏只有声音的问题
需要用到的软件:K-Lite Codec Pack 下载地址: http://www.codecguide.com/download_kl.htm K-Lite Codec Pack是世界闻名,备受好 ...
- unity3d播放透明mov格式视频的一种方式
首先说明这个是利用shader来实现透明,并不是使用含有透明通道的mov视频 网上查了unity好像没有自带的方法来支持透明通道的mov格式视频 但是可以用shader实现,mov如果带了透明通道也是 ...
- Android如何播放h.264格式视频
关于h.264格式的视频文件播放,我们可以通过android.media.MediaCodec这个接口去解码实现,这个对搞流媒体,安防实时视频传输的朋友应该很熟悉,这边只是个demo,有需要的同学自行 ...
- electron播放本地任意格式的视频
目录 说明 npm依赖 核心代码 创建一个独立的video-server.js文件,在子里程中运行,开启http服务 创建一个独立的server-child.js文件,开启子里程运行video-ser ...
- VUE项目中优雅使用EasyPlayer实时播放摄像头多种格式视频
EasyPlayer 介绍 简介:集播放http-flv, hls, websocket 于一身的H5视频直播/视频点播播放器, 使用简单, 功能强大: 功能支持: 支持 MP4 播放 支持 m3u8 ...
- 使用ffmpeg将mp4格式视频元数据信息转到视频第一帧、转换mp4为ts格式视频
最近在研究web一些播放器,videojs\ckplayer\jwplayer等各种页面播放器,发现在播放视频的时候,有些mp4格式的视频是不能够边缓存边播放的,在网上查阅了一些资料,发现是这些mp4 ...
- android 播放本地mp3和播放远程mp3
主界面MainActivity的代码: import java.io.IOException; import android.app.Activity; import android.media.Me ...
- Android中本地图片资源以及视频录音资源的获取
经常使用到本地图片的获取,还有录音之类,所以就稍微整理了一下,模式都是差不多的,大家可以参考一下. 这里写代码片package com.ly.day72_camera; import android. ...
最新文章
- python程序间通信,python 实现 socket 进程间通信
- [BZOJ3595][SCOI2014]方伯伯的OJ(裂点Splay)
- 农业谋定投资-农业大健康·万祥军:解读胡春华补三农短板
- HDU2176 【 Nim博弈】 SG函数求解
- PHP函数参数传递方法的具体改进技巧
- “Python简直万能!”拜托快醒醒!
- c#queue_带有C#示例的Queue.CopyTo()方法
- springboot2源码3-自动配置
- linux执行命令带时间戳,Linux查看History记录加时间戳的小技巧
- 豆瓣书籍数据爬取与分析
- onConfigurationChanged方法的使用
- 消息队列常见的使用场景
- 怎么用手机当电脑摄像头?安卓苹果都可以,巨简单的N种方案任君挑选
- MSM8937的sbl1和CDT
- 实现背景轮播登录页面
- android markdown简历,Markdown+GitHub制作DIY简历
- java中的match函数_javascript中match函数的用法小结
- Docker进阶实战
- v4l2架构专题模块handler分析 -- handler ctrl的注册2
- linux mock 使用