Pro Android学习笔记(一二六):Media Frameworks(1):SD卡

文章转载只能用于非商业性质,且不能带有虚拟货币、积分、注册等附加条件。转载须注明出处http://blog.csdn.net/flowingflying/以及作者@恺风Wei。

Android在android.media包中支持音视频,核心是android.media.MediaPlayer类。内容来源有web,apk(作为resource或者asset打包到apk中),SD卡。MediaPlayer支持.3gp,*.mp3,*.mid,*.ogg, *.wav和*.mp4,支持RTSP,HTTP/HTTPS live streaming,以及M3U播放列表。

SD卡

读写媒体文件,通常要读写SD(Secure Digital)卡。模拟器可以模拟SD卡。

Pro Android学习笔记(一二六):Media Frameworks(1):SD卡_第1张图片

如果我们没有为AVD创建SD卡,可以事后通过命令行提供。

1、创建一个SD卡的img文件。容量单位可以是M(MB),K(KB),或者直接是整数,表示多少byte,注意不支持G。模拟器不支持小于8M的SD卡。下面是256M的例子。

mksdcard 256M <path>\sdcard.img

2、打开AVD,指定SD卡。在Eclipse中,可以在Windows-》Preference-》Android-》Launch-》options中加入-sdcard <your-sdcard-img-file>。但是有可能不工作,仍采用AVD创建时的SD卡,可以通过下面命令行打开AVD,指定的sdcard.img会替代在AVD中的SD卡。

emulator -avd AVDName –sdcard <your-sdcard-img-file>

模拟器SD卡加载或获取文件

可以通过DDMS的File Explorer(右上方有图标)对sdcard(一般目录为\mnt\sdcard)中加入(push)或获取(pull)文件。如果发现没有File Explorer,可以在Windows-》Show View中选上。也可以通过adb命令来加载或获取文件,如下:

adb push c:\path_to_my_file\filename /mnt/sdcard/newfile
adb pull /mnt/sdcard/devicefile c:\path_to_where_its_going\filename

SD卡文件

在SD卡内,通常有DCIM目录(Digital Camera Images directory),将DCIM位于SD卡的根目录下是工业标准,子目录的工业标准命名为123ABCDE,即3位数字5位字母,可以比对数码相机。在Android通常为100ANDRO/,但更可能使用的非标准的Camera/,也可能是OEM厂家自定义的目录。

SD根目录在Android2.2之前为/sdcard,Android2.2及以后为/mnt/sdcard,代码通常用下面方式获取,返回File对象:

Environment.getExternalStorageDirectory()

DCIM外,还有一些标准目录,如下:

alarm/(DIRECTORY_ALARMS),DCIM/(DIRECTORY_DCIM),Download/(DIRECTORY_DOWNLOADS,真实名字不是负数,但是constant是,奇特),Movies/(DIRECOTRY_MOVIES),Music(DIRECTORY_MUSIC),Notifications(DIRECTORY_NOTIFICATIONS),Pictrues/(DIRECTORY_PICTURES),Podcasts/(DIRECTORY_PODCASTS),Ringtones/(DIRECTORY_RINGTONES)。

可以直接获取这些目录的File对象,但要求版本在Android2.2或之后。但有些双SD卡的设备也可能会不同。

Environment.getExternalStoragePublicDirectory(String type)

读取SD卡需要android.permission.WRITE_EXTERNAL_STORAGE的权限。


相关链接:我的Android开发相关文章

你可能感兴趣的:(Pro Android学习笔记(一二六):Media Frameworks(1):SD卡)