Android开发 MediaExtractor详解

Android开发 MediaExtractor详解,第1张

概述前言   MediaExtractor字母意思是多媒体提取器,它在Android的音视频开发里主要负责提取视频或者音频中的信息和数据流. 可以与MediaCodec配合创建自己的视频播放器或者音频播放器.   获取轨道   在一个多媒体视频里,可以包含多个数据流.我们需要先获取需要的数据轨道编号,再来后续的 *** 作.如下代码展示了获取轨道的方法. private void trackDemo(){ 前言

  MediaExtractor字母意思是多媒体提取器,它在AndroID的音视频开发里主要负责提取视频或者音频中的信息和数据流. 可以与MediaCodec配合创建自己的视频播放器或者音频播放器.

 

获取轨道

  在一个多媒体视频里,可以包含多个数据流.我们需要先获取需要的数据轨道编号,再来后续的 *** 作.如下代码展示了获取轨道的方法.

private voID trackDemo(){        mfile = new file(getExternalCacheDir(),"demo.mp4");        if (!mfile.exists()){            Log.e(TAG,"mp4文件不存在");            return;        }        MediaExtractor extractor = new MediaExtractor();//实例一个MediaExtractor        try {            extractor.setDataSource(mfile.getabsolutePath());//设置添加MP4文件路径        } catch (IOException e) {            e.printstacktrace();        }        int count = extractor.getTrackCount();//获取轨道数量        Log.e(TAG,"轨道数量 = "+count);        for (int i = 0; i < count; i++){            MediaFormat mediaFormat = extractor.getTrackFormat(0);            Log.e(TAG,i+"编号通道格式 = "+mediaFormat.getString(MediaFormat.KEY_MIME));        }    }

上面的代码已经注释的很清楚了.注意! 实际项目里建议将这些 *** 作放到线程中.

结果:

2019-08-19 16:49:18.514 17742-17742/demo.yt.com.demo E/测试Demo: count = 22019-08-19 16:49:18.515 17742-17742/demo.yt.com.demo E/测试Demo: 0编号通道格式 = vIDeo/avc2019-08-19 16:49:18.515 17742-17742/demo.yt.com.demo E/测试Demo: 1编号通道格式 = vIDeo/avc
提取视频数据信息 从MediaFormat里获取数据信息

在上面的获取轨道的代码里我们,可以看到使用MediaFormat可以获取当前轨道的编码格式.除了获取编码格式我们还能获取到很多其他信息,这里我们将会一一列出:

 

提取数据流 总结

以上是内存溢出为你收集整理的Android开发 MediaExtractor详解全部内容,希望文章能够帮你解决Android开发 MediaExtractor详解所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1121598.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存