0
Android에서 java로 앱을 제작 중이며 버튼을 클릭 할 때마다 사운드가 재생됩니다. 잘 작동하지만 버튼을 한 번 누르면 재생되고 그 버튼이나 다른 버튼을 누르면 아무 것도하지 않습니다.Android 사운드는 한 번만 재생됩니다.
import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
public class MainActivity extends Activity {
Button s1, s2, s3, s4;
MediaPlayer ss1, ss2, ss3, ss4;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.linear);
s1 = (Button) findViewById(R.id.s1);
s2 = (Button) findViewById(R.id.s2);
s3 = (Button) findViewById(R.id.s3);
s4 = (Button) findViewById(R.id.s4);
s1.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
ss1 = MediaPlayer.create(MainActivity.this, R.raw.sound1);
ss1.start();
}
});
s2.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
ss2 = MediaPlayer.create(MainActivity.this, R.raw.sound2);
ss2.start();
}
});
s3.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
ss3 = MediaPlayer.create(MainActivity.this, R.raw.sound3);
ss3.start();
}
});
s4.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
ss4 = MediaPlayer.create(MainActivity.this, R.raw.sound4);
ss4.start();
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
어떻게 해결할 수 있습니까?
감사합니다. 조금이라도 이것을 시험해보고 작동하는지 알려 주겠다. –
나는 문제가있다. ss1.setDataSource (R.raw.sound1); MediaPlayer 형식의 메서드 setDataSource (String)가 인수 (int)에 적용 할 수 없다는 오류가 발생합니다. 해결책은 sound1의 형식을 string으로 변경하는 것입니다.하지만이 메서드는 R.java에서 오류를 발생시킵니다. 그것은 문자열에서 int로 변환 할 수 없으며 int로 변경하면 다시 같은 오류가 발생합니다. –
대답을 편집했습니다. 예, assetFileDescriptor가 필요합니다. – MDMalik