视频文件的分辨率取得
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();--------------------编程问答-------------------- 看什么文件格式的咯,MPEG4的话,找找它的格式定义的文章(比较难找),然后看看文件头(Android是放在文件开头,有些是放在结束地方的),看看是第几个字节描述的,读出来就行了 --------------------编程问答-------------------- 看视频文件的格式,读文件头。 --------------------编程问答--------------------
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;
}
流媒体的话,读取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