在执行MediaScanner媒体扫描时经常遇到各种媒体类型判断的函数,其中有一个是MediaFile.isPlayListFileType函数。
1.isPlayListFileType函数定义:
public static boolean isPlayListFileType(int fileType) { return (fileType >= FIRST_PLAYLIST_FILE_TYPE && fileType <= LAST_PLAYLIST_FILE_TYPE); }
此函数的作用从字面意思判断的话就是说是否是播放列表文件类型,那么什么才是播放列表文件类型呢?
从函数的定义看,是判断文件类型是否在规定的播放类别类型之间,
2.播放列表的类型定义:// Playlist file types public static final int FILE_TYPE_M3U = 41; public static final int FILE_TYPE_PLS = 42; public static final int FILE_TYPE_WPL = 43; public static final int FILE_TYPE_HTTPLIVE = 44; private static final int FIRST_PLAYLIST_FILE_TYPE = FILE_TYPE_M3U; private static final int LAST_PLAYLIST_FILE_TYPE = FILE_TYPE_HTTPLIVE;从定义看,播放列表是指M3U,PLS,WPL,HTTPLIVE四种类型的媒体文件,这四种类型都是对流媒体来说。
(1) 其中M3U,PLS最初是Apple开始应用,目前广泛应用于网络电视电影等,把一个电影分成几部分,有一个播放列表(playlist)文件,用来定义每一部分的起止位置,以及URL等。使用播放列表的方式这样可以减少下载缓冲的数据量,减少用户等待的时间,并且各个部分独立,不会互相影响,提供播放的成功率。
(2) WPL是Windows Media Player Playlist (.wpl)的意思,是微软的一种流媒体格式。
(3) HTTP Live Streaming(缩写是 HLS)是一个由苹果公司提出的基于HTTP的流媒体 网络传输协议。是苹果公司QuickTime X和iPhone软件系统的一部分。它的工作原理是把整个流分成一个个小的基于HTTP的文件来下载,每次只下载一些。当媒体流正在播放时,客户端可以选择从许多不同的备用源中以不同的速率下载同样的资源,允许流媒体会话适应不同的数据速率。在开始一个流媒体会话时,客户端会下载一个包含元数据的extended M3U (m3u8)playlist文件,用于寻找可用的媒体流。
引自wiki:http://zh.wikipedia.org/wiki/HTTP_Live_Streaming
3.在MediaScanner媒体扫描时,只支持外部存储设备(包括外置sd卡和内置的大容量存储器)上的播放列表
-----------------------------------------------------
和Playlist相关的数据库表有:
audio_playlists
audio_playlists_map
注意:以上两个playlist表都是与音乐播放器中的播放列表相关的,与1,2中的流媒体播放列表无关。