我尝试在 raw/assets 文件夹中读取视频文件,我尝试了以下方法,但它们都不起作用。我正在测试 API 16。每种方法,我都尝试使用和不使用 mp4 扩展。我真的很感激有人可以帮助我
所有方法都不会崩溃,MediaMetadataRetriever
可以设置数据源,但不能获取宽度、高度和截图。VideoExtractor
总是回来
06-04 16:44:10.519: E/FileSource(8695): Failed to open file FILE_PATH. (No such file or directory)
06-04 16:44:10.519: E/DecodeActivity(8695): Can't find video info!
方法一:android.resource
String filePath = "android.resource://" + this.activity.getPackageName() + "/raw/green_backhand_slice";
videoExtractor.setDataSource(activity.getApplicationContext(), Uri.parse(filePath), null);
metaRetriever.setDataSource(act.getApplication(), Uri.parse(filePath));
方法二:android_asset
this.filePath = "file:///android_asset/green_backhand_slice";
videoExtractor.setDataSource(activity.getApplicationContext(), Uri.parse(this.filePath), null);
metaRetriever.setDataSource(act.getApplication(), Uri.parse(filePath));
方法三:资产文件描述符
AssetFileDescriptor assetFD = null;
try {
assetFD = getAssets().openFd("green_backhand_slice.mp4");
} catch (IOException e) {
e.printStackTrace();
}
metaRetriever.setDataSource(assetFD.getFileDescriptor());