我偶然发现了听起来很酷的“SoundPool”功能。但是在研究了数小时的Android文档和示例之后,我什么也做不了。我不确定我是否错过任何事情。编译器(Android Studio)没有报告错误。当我单击播放声音的按钮时,没有声音播放。请帮忙。
这是我想到的主要代码。
public class MainActivity extends AppCompatActivity {
Button btnPlay;
AudioAttributes audioAttributes;
SoundPool sp;
TextView tvNote;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnPlay = (Button) findViewById(R.id.btnPlay);
tvNote = (TextView) findViewById(R.id.tvNote);
}
public void playClicked(View v) {
audioAttributes = new AudioAttributes.Builder()
.setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
.setUsage(AudioAttributes.USAGE_MEDIA)
.build();
sp = new SoundPool.Builder()
.setMaxStreams(4)
.setAudioAttributes(audioAttributes)
.build();
int soundId = sp.load(getApplicationContext(), R.raw.piano_c3, 1);
sp.play(soundId, 1, 1, 1, 0, 1f);
tvNote.setText("piano_c3");
}
请让我知道我错过了什么。谢谢。
最佳答案
soundPool.play(soundID,leftVolume,rightVolume,priority,loop,rate);
这些是播放声音池所需的属性
leftVolume
,rightVolume
,priority
设置为1
很好如果1f也很合适,那就表示您想要播放声音的速度越快,数字越大,速度越快
但是您将循环保持为“0”,因此它不会播放任何声音
这是数字的不同类型的含义
0:-播放0次
1:-玩1次
-1:-循环播放无限次
尝试将其更改为适当的设置
关于android - Android SoundPool指南,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50428799/