当前位置:编程学习 > wap >>

视频文件的分辨率取得

Android中取得视频文件的分辨率,是否一定要先播放该视频文件啊?
有谁对视频了解一点的,进来回答一下啊,谢谢 --------------------编程问答-------------------- 帮顶,和视频流的格式有关吧。 --------------------编程问答-------------------- 看看mediaplayer和videoview中有没 --------------------编程问答-------------------- 楼主查看一下mediaplay包里面有没有你需要的库? --------------------编程问答-------------------- 代码如下,其中MediaMetadataRetriever为隐藏类。

解决方法,1. 使用源码环境开发
  2. 去找一包将@hide标签去掉,自己编译过的framework.jar这些包,导入到工程中。
  3. 或者告诉我你的邮箱,给你发一包过去。

包名:android.media.MediaMetadataRetriever
文件目录:android\frameworks\base\media\java\android\media\MediaMetadataRetriever

                    MediaMetadataRetriever retriever = new MediaMetadataRetriever();
                    try
                    {
                        retriever.setMode(MediaMetadataRetriever.MODE_GET_METADATA_ONLY);
                        retriever.setDataSource(image.getDataPath());
                        try
                        {
                            dimensionWidth  = Integer.parseInt(retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_WIDTH));
                            dimensionHeight = Integer.parseInt(retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_HEIGHT));
                        }
                        catch(NumberFormatException e)
                        {
                            dimensionWidth  = 0;
                            dimensionHeight = 0;
                        }
--------------------编程问答-------------------- 看什么文件格式的咯,MPEG4的话,找找它的格式定义的文章(比较难找),然后看看文件头(Android是放在文件开头,有些是放在结束地方的),看看是第几个字节描述的,读出来就行了 --------------------编程问答-------------------- 看视频文件的格式,读文件头。 --------------------编程问答--------------------
引用 5 楼 sniffer12345 的回复:
看什么文件格式的咯,MPEG4的话,找找它的格式定义的文章(比较难找),然后看看文件头(Android是放在文件开头,有些是放在结束地方的),看看是第几个字节描述的,读出来就行了


流媒体的话,读取server的config文件了 --------------------编程问答-------------------- 学习了~ --------------------编程问答-------------------- 可以读取视频文件的第一帧来获取分辨率。我之前做的一个video播放器就是这么做的,可以根据分辨率动态改变service view大小。


Cursor cursor =  getContentResolver().query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI,
null, "(_data='"+_data+"')", null , MediaStore.Video.Media.DEFAULT_SORT_ORDER);

cursor.moveToFirst();
path = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DATA));
MediaMetadataRetriever retr = new MediaMetadataRetriever();  
retr.setDataSource(path);        
Bitmap bm = retr.getFrameAtTime(); 
wVideo = bm.getWidth();  
hVideo = bm.getHeight(); 

其中path是文件路径,wVideo,hVideo为宽和高 --------------------编程问答-------------------- 给我发个包吧,十分感谢啊 1040536031@qq.com
补充:移动开发 ,  Android
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,