Android SoundPool 不播放声音
Android SoundPool plays no sound
我想在使用 SoundPool 单击按钮时播放一段短促的声音。但是当单击按钮时,尽管日志告诉我它已加载并且 "playing",但没有声音出现。如果相关,声音文件是 .ogg。这是我的代码,buttonSound()
在 onCreate()
中调用。
void buttonSound(){
AudioAttributes attributes = new AudioAttributes.Builder()
.setUsage(AudioAttributes.USAGE_ASSISTANCE_SONIFICATION)
.setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
.build();
soundPool = new SoundPool.Builder().setAudioAttributes(attributes).build();
soundPool.setOnLoadCompleteListener(new OnLoadCompleteListener() {
@Override
public void onLoadComplete(SoundPool soundPool, int sampleId,
int status) {
Log.d("SOUNDPOOL", "COMPLETE "+button);
}
});
button = soundPool.load(this, R.raw.button, 1);
}
public void onClick(View view) {
switch (view.getId()) {
case R.id.button_back:
// Sound loaded
if(button != 0) {
soundPool.play(button, 1f, 1f, 1, 0, 1f);
Log.d("PLAYING", "PLAYING");
}
break;
显然 AudioAttributes.USAGE_ASSISTANCE_SONIFICATION
是问题所在,它与 AudioAttributes.USAGE_GAME
和 AudioAttributes.USAGE_MEDIA
一起工作正常。不过我不知道为什么。
我想在使用 SoundPool 单击按钮时播放一段短促的声音。但是当单击按钮时,尽管日志告诉我它已加载并且 "playing",但没有声音出现。如果相关,声音文件是 .ogg。这是我的代码,buttonSound()
在 onCreate()
中调用。
void buttonSound(){
AudioAttributes attributes = new AudioAttributes.Builder()
.setUsage(AudioAttributes.USAGE_ASSISTANCE_SONIFICATION)
.setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
.build();
soundPool = new SoundPool.Builder().setAudioAttributes(attributes).build();
soundPool.setOnLoadCompleteListener(new OnLoadCompleteListener() {
@Override
public void onLoadComplete(SoundPool soundPool, int sampleId,
int status) {
Log.d("SOUNDPOOL", "COMPLETE "+button);
}
});
button = soundPool.load(this, R.raw.button, 1);
}
public void onClick(View view) {
switch (view.getId()) {
case R.id.button_back:
// Sound loaded
if(button != 0) {
soundPool.play(button, 1f, 1f, 1, 0, 1f);
Log.d("PLAYING", "PLAYING");
}
break;
显然 AudioAttributes.USAGE_ASSISTANCE_SONIFICATION
是问题所在,它与 AudioAttributes.USAGE_GAME
和 AudioAttributes.USAGE_MEDIA
一起工作正常。不过我不知道为什么。