2
我對Android開發非常陌生,想知道如何在廣播接收器中播放SoundPool聲音?Android編程 - 如何從廣播接收器播放SoundPool聲音?
我在某處讀過使用SoundPool播放聲音的方式,但我不知道如何正確設置它。
我在我的Eclipse res \ raw文件夾中有一些聲音文件,例如wave和mp3文件。我想播放一個名爲half.wav的文件
你能展示我需要放置到我的broadcastreceiver的示例代碼嗎?
這是第一次嘗試代碼,但我得到一個錯誤,聲明soundID = soundPool.load(this,R.raw.half,1);
「的方法裝載(上下文,INT,INT)式的Soundpool是不適用......」
下面是類代碼:
package ChimeMe.BigBen;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;
import android.os.Bundle;
import android.media.AudioManager;
import android.media.SoundPool;
import android.media.SoundPool.OnLoadCompleteListener;
public class AlarmReceiver extends BroadcastReceiver {
private SoundPool soundPool;
private int soundID;
boolean loaded = false;
@Override
public void onReceive(Context context, Intent intent) {
try {
// Load the sound
soundPool = new SoundPool(10, AudioManager.STREAM_MUSIC, 0);
soundPool.setOnLoadCompleteListener(new OnLoadCompleteListener() {
@Override
public void onLoadComplete(SoundPool soundPool, int sampleId,
int status) {
loaded = true;
}
});
soundID = soundPool.load(this, R.raw.half, 1);
Toast.makeText(context, "This is the alarm.", Toast.LENGTH_SHORT)
.show();
} catch (Exception e) {
Toast.makeText(
context,
"There was an error somewhere, but we still received an alarm",
Toast.LENGTH_SHORT).show();
e.printStackTrace();
}
}
}
在此先感謝。
誠然, 伊馬德
感謝Pheonix2105的編碼樣本。 :-) –