很久没有写文章了,今天有空看了有关android media的有关知识,把心德记录下来:
1,若你很想清楚的了解究竟android media支持哪些格式,你可以看android的源码:android\frameworks\base\media\java\android\media中的MediaFile:
static {
//Audio
addFileType("MP3", FILE_TYPE_MP3, "audio/mpeg");
addFileType("M4A", FILE_TYPE_M4A, "audio/mp4");
addFileType("WAV", FILE_TYPE_WAV, "audio/x-wav");
addFileType("AMR", FILE_TYPE_AMR, "audio/amr");
addFileType("AWB", FILE_TYPE_AWB, "audio/amr-wb");
addFileType("WMA", FILE_TYPE_WMA, "audio/x-ms-wma");
addFileType("OGG", FILE_TYPE_OGG, "application/ogg");
addFileType("OGA", FILE_TYPE_OGG, "application/ogg");
addFileType("MID", FILE_TYPE_MID, "audio/midi");
addFileType("MIDI", FILE_TYPE_MID, "audio/midi");
addFileType("XMF", FILE_TYPE_MID, "audio/midi");
addFileType("RTTTL", FILE_TYPE_MID, "audio/midi");
addFileType("SMF", FILE_TYPE_SMF, "audio/sp-midi");
addFileType("IMY", FILE_TYPE_IMY, "audio/imelody");
addFileType("RTX", FILE_TYPE_MID, "audio/midi");
addFileType("OTA", FILE_TYPE_MID, "audio/midi");
//Video
addFileType("MP4", FILE_TYPE_MP4, "video/mp4");
addFileType("M4V", FILE_TYPE_M4V, "video/mp4");
addFileType("3GP", FILE_TYPE_3GPP, "video/3gpp");
addFileType("3GPP", FILE_TYPE_3GPP, "video/3gpp");
addFileType("3G2", FILE_TYPE_3GPP2, "video/3gpp2");
addFileType("3GPP2", FILE_TYPE_3GPP2, "video/3gpp2");
addFileType("WMV", FILE_TYPE_WMV, "video/x-ms-wmv");
//Iamage
addFileType("JPG", FILE_TYPE_JPEG, "image/jpeg");
addFileType("JPEG", FILE_TYPE_JPEG, "image/jpeg");
addFileType("GIF", FILE_TYPE_GIF, "image/gif");
addFileType("PNG", FILE_TYPE_PNG, "image/png");
addFileType("BMP", FILE_TYPE_BMP, "image/x-ms-bmp");
addFileType("WBMP", FILE_TYPE_WBMP, "image/vnd.wap.wbmp");
addFileType("M3U", FILE_TYPE_M3U, "audio/x-mpegurl");
addFileType("PLS", FILE_TYPE_PLS, "audio/x-scpls");
addFileType("WPL", FILE_TYPE_WPL, "application/vnd.ms-wpl");
2,从MediaFile除了获得Media 支持的格式,也可知道MediaScanner是如何扫描相对应的文件:
public static MediaFileType getFileType(String path) {
int lastDot = path.lastIndexOf(".");
if (lastDot < 0)
return null;
return sFileTypeMap.get(path.substring(lastDot + 1).toUpperCase());
}
从这段代码中就可以知道MediaScanner是通过后缀名来确定所需要扫描的文件,并且我还测试将后缀名驱动后就扫描到了。
分享到:
相关推荐
综上所述,FileExplorer项目覆盖了Android开发的多个核心领域,是学习Android文件系统操作、UI设计、网络编程和权限管理等方面的好实践案例。通过深入研究和理解这个项目的源代码,开发者可以提升自己的Android开发...
MediaItem mediaItem = MediaItem.fromUri("http://your-mp4-file-url.mp4"); ProgressiveMediaSource mediaSource = new ProgressiveMediaSource.Factory(dataSourceFactory) .createMediaSource(mediaItem); ...
在Android平台上,开发MIDI(Musical Instrument Digital Interface)文件处理功能可以为音乐应用提供丰富的交互体验。MIDI是一种标准的数字音乐格式,用于电子乐器、计算机和其他设备之间的通信。本教程将深入探讨...
在提供的源码`AndroidCamera(jb51.net)`中,我们可以看到以上步骤的具体实现,包括权限请求、创建意图、设置输出文件、启动相机、处理回调以及图片处理等关键代码。通过对这些代码的分析和学习,开发者可以更好地...
这一联盟将会支持 Google 发布的 Android 手机操作系统或者应用软件,共同开发名为 Android 的 开 放源代码的移动系统。开放手机联盟包括手机制造商、手机芯片厂商和移动运营商几类。目前,联盟成员 数 量已经达到了...
Media File XStream作为XBMSP服务器,它的核心功能是使用户能够轻松地在本地网络内分享音频、视频和其他媒体文件。由于它是用C#编写的,因此需要.NET Framework v1.1环境才能运行,这是Microsoft开发的一个应用程序...
20. 文件操作:读取、写入文件,获取文件大小,删除文件等,涉及File类和IO流。 21. BroadcastReceiver处理SD卡插拔事件:注册BroadcastReceiver监听ACTION_MEDIA_MOUNTED和ACTION_MEDIA_UNMOUNTED广播。 22. JSON...
【Android 仿ES文件浏览器源码解析】 在Android开发中,构建一个强大的文件管理器是一项挑战,而"android 仿ES文件浏览器源码"则提供了一个实现此类功能的参考实例。ES文件浏览器是一款广受欢迎的Android应用,它...
在Android应用开发中,文件上传是一项常见的功能,无论是图片、文档还是音频,用户可能需要将本地数据上传到服务器进行存储或处理。本知识点主要聚焦于如何在Android中实现单文件和多文件的上传,以及后台使用`...
android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/file_paths" /> ``` 在res/xml文件夹下创建file_paths.xml,定义允许访问的日志文件路径: ```xml <paths xmlns:android=...
公共存储在Android 6.0(API级别23)之后需要运行时权限,文件在/Android/media或/Android/obb目录下。私有存储则类似于内部存储,但位于外部存储,如/data/user/0/包名/files/,不过应用卸载后,这些文件不会自动...
- 自Android 6.0(API级别23)起,官方提供了`MediaProjection` API,允许开发者实现系统级别的屏幕录制。然而,对于Android 5.0(API级别21),开发者需要利用第三方库或者自定义实现来达到屏幕录制的效果。例如,...
AndroidFileTransfer是一款免费的第三方应用,它利用Media Transfer Protocol (MTP) 协议,允许Mac用户通过USB连接将Android设备与电脑相连,浏览、复制、移动或删除设备上的文件,如照片、视频、音乐、文档等。...
Android提供`java.io.File`类来进行文件操作。在SDCardSample中,开发者可能创建、删除、读取或写入文件。`File`对象可以代表路径,然后使用`createNewFile()`, `exists()`, `delete()`, `renameTo()`等方法执行...
本项目"MediaCodec-Decode-selectFile-master"旨在实现一个功能完善的媒体解码播放器,通过用户选择本地文件直接调用MediaCodec进行解码播放。 MediaCodec是Android硬件加速框架的一部分,它允许开发者访问设备上的...
如果你需要在Android 7.0及以上版本分享文件,需要使用`FileProvider`来避免安全警告。首先在`AndroidManifest.xml`中添加`<provider>`标签,然后在代码中创建文件URI并传递给Webview: ```xml android:name=...
与播放本地文件类似,我们首先创建Media对象,但这次使用libvlc_media_new_location()或libvlc_media_new_mrl(),传入流的URL。之后的步骤与播放本地文件相同,加载到MediaPlayer并启动播放。 接下来,**录制功能**...
在Android中,删除SD卡上的媒体文件通常涉及到更新Media数据库的记录,以确保文件的元数据与实际文件状态同步。然而,没有直接的方法可以完成这一操作。一种常见的实现方式是通过文件的绝对路径获取其在数据库中的ID...
RequestBody requestBody = RequestBody.create(MediaType.parse("image/*"), file); MultipartBody.Part part = MultipartBody.Part.createFormData("file", file.getName(), requestBody); ``` 现在我们已经准备...