Java 从微调器选择加载声音池声音
我希望能够加载大约30个声音中的5个声音,这取决于微调器的选择。我已经创建了initializeSoundPoolBank1-5(),并将它们添加到onItemSelectedListener中的switch语句中。但是,如果我直接从onCreate()调用初始值undpoolbank,它就不会播放声音了。我对编程和Android非常陌生,我意识到我肯定遗漏了一些东西,但我似乎找不到任何关于这方面的具体文档。应用程序没有崩溃,它只是不播放任何东西。任何帮助都将不胜感激。这是我的密码Java 从微调器选择加载声音池声音,java,android,android-spinner,soundpool,Java,Android,Android Spinner,Soundpool,我希望能够加载大约30个声音中的5个声音,这取决于微调器的选择。我已经创建了initializeSoundPoolBank1-5(),并将它们添加到onItemSelectedListener中的switch语句中。但是,如果我直接从onCreate()调用初始值undpoolbank,它就不会播放声音了。我对编程和Android非常陌生,我意识到我肯定遗漏了一些东西,但我似乎找不到任何关于这方面的具体文档。应用程序没有崩溃,它只是不播放任何东西。任何帮助都将不胜感激。这是我的密码 selec
selectSoundBank.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
int instrumentDirInt = selectSoundBank.getSelectedItemPosition();
switch (instrumentDirInt + 1){
case 1:
initializeSoundPoolBank1();
break;
case 2:
initializeSoundPoolBank2();
break;
case 3:
initializeSoundPoolBank3();
break;
case 4:
initializeSoundPoolBank4();
break;
case 5:
initializeSoundPoolBank5();
break;
default:
break;
}
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
然后从按钮点击播放
public void onPlay(View view) {
bpmFromEditText = Integer.parseInt(setBPMEditText.getText().toString());
millisecondsIntoThread = minute / (double) bpmFromEditText;
loop = 0;
RunnableThread runnableThread = new RunnableThread();
new Thread(runnableThread).start();
}
class RunnableThread implements Runnable{
@Override
public void run() {
int i;
//millisecondsIntoThread = minute/quaver/bpmFromTextView;
while (loop == 0) {
for( i = 0; i < maqsum.size(); i++){
try {
soundPool.play(maqsum.get(i),1.0f, 1.0f, 0,0,1);
Thread.sleep((long) millisecondsIntoThread);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}
public void onPlay(视图){
bpmFromEditText=Integer.parseInt(setBPEditText.getText().toString());
毫秒读取=分钟/(双)bpmFromEdit文本;
循环=0;
RunnableThread RunnableThread=new RunnableThread();
新线程(runnableThread.start();
}
类RunnableThread实现Runnable{
@凌驾
公开募捐{
int i;
//毫秒SinToThread=分钟/quaver/bpmFromTextView;
while(循环==0){
对于(i=0;i
我尝试了不同的上下文(getApplicationContext()、myActivity.this等),但仍然一无所获。伙计们,我失去理智了,任何帮助都将不胜感激。
public void onPlay(View view) {
bpmFromEditText = Integer.parseInt(setBPMEditText.getText().toString());
millisecondsIntoThread = minute / (double) bpmFromEditText;
loop = 0;
RunnableThread runnableThread = new RunnableThread();
new Thread(runnableThread).start();
}
class RunnableThread implements Runnable{
@Override
public void run() {
int i;
//millisecondsIntoThread = minute/quaver/bpmFromTextView;
while (loop == 0) {
for( i = 0; i < maqsum.size(); i++){
try {
soundPool.play(maqsum.get(i),1.0f, 1.0f, 0,0,1);
Thread.sleep((long) millisecondsIntoThread);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}