视频文件的分辨率取得 Android中取得视频文件的分辨率,是否一定要先播放该视频文件啊?有谁对视频了解一点的,进来回答一下啊,谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 看看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是放在文件开头,有些是放在结束地方的),看看是第几个字节描述的,读出来就行了 流媒体的话,读取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为宽和高 给我发个包吧,十分感谢啊 [email protected] 请教android 4.1 stagefright内c++的相关语法问题 在android中创建圆角的文本框的实现 4.0 wif如何让系统设置为打开 listItemAdapter.notifyDataSetChanged() textAppearance设置提示错误 我想实现一个工具条的效果求解 AutoCompleteTextView 显示所有的数据 如何播放 swf android获取gps时的一个问题 apk兼容6.0(无源码),7.0和8.0闪退,求解决思路 如何从一个Activity中将Bitmap实例传到下一个Activity? android 能作屏幕录像吗?
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;
}
流媒体的话,读取server的config文件了
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为宽和高