- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我尝试读取 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));
方法 3: Assets 文件描述符
AssetFileDescriptor assetFD = null;
try {
assetFD = getAssets().openFd("green_backhand_slice.mp4");
} catch (IOException e) {
e.printStackTrace();
}
metaRetriever.setDataSource(assetFD.getFileDescriptor());
最佳答案
这里有一些方法可以做到这一点:
1.原始:
final AssetFileDescriptor afd=getResources().openRawResourceFd(R.raw.t);
mediaMetadataRetriever.setDataSource(afd.getFileDescriptor(),afd.getStartOffset(),afd.getLength());
2.raw 作为 uri:
final String uriPath="android.resource://"+getPackageName()+"/raw/t";
final Uri uri=Uri.parse(uriPath);
mediaMetadataRetriever.setDataSource(getApplication(),uri);
3. Assets :
final AssetFileDescriptor afd=getAssets().openFd("t.mp4");
mediaMetadataRetriever.setDataSource(afd.getFileDescriptor(),afd.getStartOffset(),afd.getLength());
关于android - MediaExtractor、MediaMetadataRetriever 与原始/ Assets 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24030756/
我正在尝试构建一个播放器,使用 MediaCodec 播放带有 2 个音轨的 mpeg2-ts 流和 MediaExtractor .当我将 URL 设置为提取器时:extractor.setData
我正在尝试使用 MediaExtractor 和 MediaCodec 从电影中获取特定时间的特定帧作为图像。如果满足以下条件,我可以成功完成: 我使用 extractor.seekTo(time,
我正在尝试开发一个应用程序,通过 RTSP(实时流协议(protocol))从安全摄像头下载实时视频流。 我已成功连接到相机并可以在 VideoView 中查看视频。但是,我想要对数据流进行低级访问,
使用 MediaExtractor 类,我可以从保存的 mp4 视频中获取编码的音频样本数据,如下所示: ByteBuffer byteBuffer = ByteBuffer.allocate(102
什么意思: SAMPLE_FLAG_SYNC SAMPLE_FLAG_ENCRYPTED 我很难理解音频文件的“同步样本”概念。 此外,请随时提出任何技术引用以了解“整个场景”。 最佳答案 SAMPL
我是新来的,刚接触 Android 开发。这是我的第一个问题。 我正在使用 MediaExtractor 和 MediaCodec 播放带有视频和音频的 mp4 文件。现在我得到一对视频提取器/编解码
MediaExtractor 类的 advance() 方法比预期更早(在文件结束之前)发出流结束信号,我遇到了问题。根据谷歌引用 advance()使用本地文件时方法可能会出错(这是我的情况 - f
我试着回答这个问题 Concatenate multiple mp4 audio files using android´s MediaMuxer并连接视频文件。 但由于某些原因,当我调用 readS
我使用 MediaCodec 和 MediaExtractor 创建了一个视频播放器,但是当我尝试使用 MediaExtractor seekTo< 更改媒体位置时 方法它真的很慢(寻找 1080P
我正在尝试使用 MediaExtract 提取 avi 文件的轨道 0(视频轨道)并使用 MediaCodec 编码为 h264 格式。这是我配置 mediaCodec 的方式 public Medi
我正在尝试使用 MediaExtractor/MediaCodec 播放 mp3 流。由于延迟和长缓冲区大小,MediaPlayer 是不可能的。 我找到的唯一示例代码是:http://dpsm.wo
我正在使用 MediaCode、MediaExtractor 和 AudioTrack 创建我自己的媒体播放器实现。我需要对从本地存储的音频文件中读取的解码 mp3 样本执行失真 - 因此需要自定义实
我正在尝试使用 ExoPlayer 播放 AAC 流。我遇到了与使用内置 MediaPlayer 时遇到的相同问题:在 KitCat 上启动需要 15 - 20 秒(其他版本可能也会发生同样的情况,但
我在两台 Android 设备上检查了 MediaExtractor 的输出,它似乎在它们上产生了略有不同的样本,假设相同视频文件。 对于一个设备,非 VCL NAL 单元连接到下一个 VCL 单元以
我正在使用 MediaExtractor/MediaCodec 解码视频并将其渲染到 TextureView。作为模板,我使用了以下代码:https://github.com/vecio/MediaC
我正在尝试流式传输传入的 AMR_NB。我不能直接使用 MediaPlayer,因为它需要一个可搜索的文件。我想使用 MediaCodec,但要使用 MediaCodec,我需要(我想……请纠正我!)
我正在像这样使用 Android MediaExtractor: MediaExtractor extractor = new MediaExtractor(); extractor.setDataS
我需要将视频解码为一系列位图,以便我能够修改它们,然后将它们压缩回 android 中的视频文件。 我计划通过使用 getFrameAtTime 并将其保存到图像序列中来管理它。然后我可以修改序列中的
我尝试读取 raw/assets 文件夹中的视频文件,我尝试了以下方法,但均无效。我正在测试 API 16。每种方法,我都尝试使用和不使用 mp4 扩展。我真的很感激有人可以帮助我 所有方法都不会崩溃
我正在尝试使用 MediaCodec 播放视频。视频正在播放但音频静音。我想取消静音。经过研究我发现我们需要单独解码音频和视频。我想只使用一个 Mediacodec 和 MediaExtractor
我是一名优秀的程序员,十分优秀!