本地檔案就是指檔案放在android系統的外部儲存設備(如:sd卡)和内部裝置上的檔案,sd卡比較友善,容易更新音頻檔案,适合于以娛樂為主的應用系統。下面看看播放本地音頻檔案的代碼請參考代碼清單12-2,完整代碼請參考chapter12_2工程中audioplayer代碼部分。
【代碼清單12-2】
private void play() {
file sdcarddir = environment.getexternalstoragedirectory();
string path = sdcarddir.getpath() + "/lover's concerto.mp3";
try {
if (mmediaplayer == null || state == stop) {
// 建立mediaplayer對象并設定listener
mmediaplayer = new mediaplayer();
mmediaplayer.setonpreparedlistener(prelistener);
} else {
// 複用mediaplayer對象
mmediaplayer.reset();
}
mmediaplayer.setdatasource(path);
mmediaplayer.prepare();
} catch (exception e) {
e.printstacktrace();
資源檔案和本地檔案的差别就在于play()方法中的mmediaplayer = new mediaplayer(),而不是mediaplayer.create(),然後設定預處理監聽器,設定setdatasource(path),其中的path是指定的音頻檔案,這裡放置sd卡中的mp3檔案,mmediaplayer.prepare()開始預處理。播放流程如圖12-6所示。

圖12-6播放流程
如果把檔案放入到模拟器的sd卡?如圖12-7所示“file explorer”中右上角的 按鈕可以把資料從開發機push到模拟器的sd卡。相反如果需要可以使用 按鈕把檔案從模拟器pull開發機中。
圖12-7 file explorer
出自《android開發案例驅動教程》