Android遊戲之背景音樂

Android遊戲之背景音樂

遊戲聲音分為『音樂』與『音效』.遊戲背景『音樂』播放時間通常達幾分鐘以上.音檔通常較大不能一次性載入記憶體.只能以『數據流』方式逐次讀入數據塊.並解碼為PCM數據交給音頻芯片上.Android系統提供MediaPlayer幫你解卻所有問題. 將所有『音樂』文檔存放在『\app\src\main\assets』目錄下.讓AssetManager能夠訪問.

生成MediaPlayer音頻播放器

MediaPlayer media_player = new MediaPlayer();

獲取ASSET文檔描述符

AssetFileDescriptor afd = asset_manager.openFd(file_name);

文檔描述符

FileDescriptor file_descriptor = afd.getFileDescriptor();

獲取音檔數據開此位置偏移量

long offset = afd.getStartOffset();

獲取音檔數據長度

long length = afd.getLength();

設定音檔數據

media_player.setDataSource(descriptor,offset,length);

每次啟動播放時.都需載入準備播放

media_player.prepare();

啟動播放

media_player.start();

播放中若暫停播放

media_player.pause();

播放中若停止播放

media_player.stop();

設定循環播放.

media_player.setLooping(true);

設定左右聲道音量.數值在0~1之間

media_player.setVolume(volume,volume);

判定時否播放中. isPlaying()若返回true則播放中否則返回false

media_player.isPlaying();

或用註冊OnCompletionListener簡聽器

media_player.setOnCompletionListener(listener);

若退出遊戲需釋放記憶體

media_player.release();

評論