我正在尝试动态播放声音。
我在名为“raw”的 res 文件夹下创建了一个资源目录。此目录包含 mp3 文件。
我想做的是创建一个包含所有文件名的数组,当单击一个按钮时,下一个 mp3 int 下一个索引将加载到媒体播放器并可以播放。
我找到了这段使用媒体播放器的代码
public class MainActivity extends ActionBarActivity {
Context context = this;
MediaPlayer mp;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_layout);
mp = MediaPlayer.create(context, R.raw.sound);
final Button b = (Button) findViewById(R.id.Button);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
if (mp.isPlaying()) {
mp.stop();
mp.release();
mp = MediaPlayer.create(context, R.raw.sound);
} mp.start();
} catch(Exception e) { e.printStackTrace(); }
}
});
}
}
但我似乎无法找到使用 i 索引上的歌曲名称通过 Array 设置轨道切换的方法。
感谢您的帮助
最佳答案
我找到了解决办法。我已将原始目录中的所有文件名设置为相同的名称模式,通过名称获取每个文件资源 ID 并将其加载到播放器。
Resources res = getResources(); //resource handle
String url = "song" +index;
InputStream is = getClass().getClassLoader().getResourceAsStream("raw/");
Integer resIdSound = res.getIdentifier (url, "raw", this.getPackageName());
mp = MediaPlayer.create(this, resIdSound);
try {
if (mp.isPlaying()) {
mp.stop();
mp.release();
mp = MediaPlayer.create(this, resIdSound);
} mp.start();
} catch(Exception e) { e.printStackTrace(); }
}
关于java - Android - 动态更改在媒体播放器中播放的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39912670/