重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
一部分手机将eMMC存储挂载到 /mnt/external_sd 、/mnt/sdcard2 等节点,而将外置的SD卡挂载到Environment.getExternalStorageDirectory()这个结点,此时,调用Environment.getExternalStorageDirectory(),则返回外置的SD的路径。
成都地区优秀IDC服务器托管提供商(成都创新互联公司).为客户提供专业的服务器托管,四川各地服务器托管,服务器托管、多线服务器托管.托管咨询专线:13518219792
而另一部分手机直接将eMMC存储挂载在Environment.getExternalStorageDirectory()这个节点,而将真正的外置SD卡挂载到/mnt/external_sd、/mnt/sdcard2 等节点。此时,调用Environment.getExternalStorageDirectory(),则返回内置的SD的路径。
我们只说第一种情况,并且视频文件在/Sdcard下面
String path = Environment.getExternalStorageDirectory().getPath() + "/文件所在子目录/../你的文件名.*";
String path2 = "文件.*";
File file = new File("/sdcard/../文件.*");
//加载视频:
VideoView videoView = (VideoView)findViewById(R.id.
本周给大家分享如何获取视频的每一帧的信息,说到这个那就得看我们的谷歌官方给我们的提供的api接口类:MediaMetadataRetriever,这个类是提供给我们用来获取视频信息的,
官方文档:
通过文档我们知道,我们可以通过它提供的extractMetadata()方法获取视频基本信息,
例如:视频宽、高,时长,作者等,还有通过getFrameAtTime()方法获取对应时长位置的视频帧信息,返回的是一个bitmap对象
通过实践知道,这个方法好是好,但是获取视频帧的速度太慢了,我自己做的实验是,获取一个4分多钟的视频,每隔10秒取一帧,开了4个线程去取,时间大概在10秒左右,这样对于我们来说是不可以忍受的,所以最后在github上找到了一个很好的库推荐给大家:
这个库是基于ffmpeg实现的,同样的实验获取视频帧信息的速度在1秒左右,只开了一个线程,ffmpeg还是依旧的强大啊。
通过本周的学习,自己对于ffmpeg是越来越赶兴趣了,所以买了一本书来研究一下,但是本书讲的都是c语言,所以没办法又把我大学学习的c语言的书找了出来,继续开始着自己的爬坑之旅。
读数据库。Android中所有的多媒体文件除了存储在物理硬盘上,还会将文件信息(路径、id、类型、)保存到数据库中,这样当我们想要获取这些文件的信息时,就不需要耗时的扫描硬盘,只需要读数据库就可以了。Android平台中称手机终端内存为内部存储空间,称SD卡为外部存储空间。针对内部和外部存储空间中的媒体文件信息是分开管理的,各自有独立的数据库管理。外部存储空间和内部存储空间对应的卷标为”external”和”internal”。