我生成一个midi文件并这样写:
File output = new File("exampleout.mid");
我想我可能需要更改它,所以它位于正确的文件夹中(只是一个可读/可写文件夹,可能是 Music/ )
接下来我想用 MediaPlayer 播放这个 MIDI 文件,但我不知道如何加载文件。
mediaPlayer = MediaPlayer.create(this, R.raw.test3);
仅从只读目录 /res/raw 加载。但是,如果我尝试类似:
mediaPlayer = MediaPlayer.create(this, "file://exampleout");
它不起作用,因为 create 需要一个整数作为输入。我尝试了 AssetFileDescriptor,但还没有弄清楚。
同时,我想生成一个新的 midi 文件并将其加载到 mediaPlayer(链接)中,以便在第一个文件播放完毕时播放。
MediaPlayer mediaPlayer = MediaPlayer.create(Activity.this,R.raw.a1);
mediaPlayer.setOnCompletionListener(new musicCompletionListener());
mediaPlayer.start();
private class musicCompletionListener implements OnCompletionListener {
@Override
public void onCompletion(MediaPlayer mediaPlayer) {
mediaPlayer.setDataSource(WHATTOPUTHERE)
mediaPlayer.release();
}
}
我的问题实际上是如何调用文件。我不能明显地使用字符串,并且 r.raw 目录由于其只读性质而无法使用。我觉得解决方案并不难,但我只是从 c++ 轻松进入 java,非常感谢任何帮助!