微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 手机设计讨论 > MTK手机平台交流 > 播放某些视频文件到结束位置 ,画面卡顿一下才退出

播放某些视频文件到结束位置 ,画面卡顿一下才退出

时间:10-02 整理:3721RD 点击:
[DESCRIPTION]
某些3GP\MP4视频文件,在播放到进度条最后结束的位置时,视频卡顿一下或者说画面定一下才退出到播放列表界面。有时候手机录制的视频也有此现象。
[SOLUTION]
首先需要了解一些关于视频的基础知识,同时带有音视频的3GP\MP4视频文件:
1. 通常会用两个轨道(track)分别来存储描述信息,也就是说对于音频轨道会有自己的长度(duration)的记录,视频轨道也会有自己的长度记录。
2. 在默认播放器里,进度条的长度是取两个长度记录的最大值(通常是单位ms),再对其取整(单位是s)得到的。
3. 用默认播放器播放的过程中,底层必须检测到音视频轨道两者的EOS(End Of Strream)标记,才会通知上层MEDIA_PLAYBACK_COMPLETE,也就是说播放结束,才会返回到播放列表界面。
因此,该问题首先需要检查该音视频文件的音视频轨道记录的长度值分别是多少,具体可以查看trak box->mdia box-
>mdhd box里timescale和duration的值,计算公式如下:
Track duration = duration/timescale (单位为s)
假如:
video track.mdia.mdhd里timescale = 90000,duration = 851769
audio track.mdia.mdhd里timescale = 48000,duration = 488976
那么
Video track duration1 = 851769/90000= 9.4641
Sound track duration2 = 488976/48000= 10.187
所以播放器里去显示的视频长度为max(duration1,duration2)=10.187,再取整也就是10s。播放的过程中视频会先解完,然后检查到EOS,画面静止;然后继续播完audio,再检测到EOS;检测到video和audio的EOS后,播放器才会收到底层notify回来的MEDIA_PLAYBACK_COMPLETE,退回到播放列表界面。
所以贵看到的现象就是画面静止1s后再退出.

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top