ユーザーが自分のライブラリから音楽を選択し、ゲームが実行されている間にそれらが失敗するまでバックグラウンドで再生するアンドロイド用のゲームを作りたいと思います。ゲームのバックグラウンドミュージックとして選択した音楽を再生する
これは私が持っているコードで、それが選択されているとき、それは歌を果たしているが、それは、私はOKボタンを
public class MainActivity extends AppCompatActivity {
MediaPlayer mp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button openFile = (Button) this.findViewById(R.id.openFile);
openFile.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, 10);
}
});
Button play = (Button) this.findViewById(R.id.button2);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(resultCode == RESULT_OK && requestCode == 10){
Uri uriSound=data.getData();
play(this, uriSound);
}
}
private void play(Context context, Uri uri) {
try {
MediaPlayer mp = new MediaPlayer();
mp.setDataSource(context, uri);
mp.start();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
私はこれを試しましたが、まだ音楽を再生しません。おそらくコンテキストに問題がありますか? – PunishedSky
私はそうは思わない、コンテキストがnullの場合は、MediaPlayer.create(...)行=> player .prepareAsync()の後にこの行を追加してみてください。 – yanivtwin
これは、onPreparedの内部にあるものを実行していないようだ。 – PunishedSky