在下面运行代码时我有两个问题
- Mediaplayer 没有停止,因为它是一种方法 mp.isPlaying() 总是返回 false。
- 有时我会收到无效的状态异常。
try {
String[] alerts = getResources().getStringArray(R.array.mp3files);
int ch;
StringBuffer fileContent = new StringBuffer("");
FileInputStream fis = openFileInput("alertNo");
byte[] buffer = new byte[1];
int length;
while ((length = fis.read(buffer)) != -1) {
fileContent.append(new String(buffer));
}
String data = new String(fileContent);
int position = Integer.parseInt(data);
//m.setVolume(100, 100);
if (m.isPlaying()) {
m.stop();
m.release();
}
AssetFileDescriptor descriptor =
MySettings.this.getAssets().openFd(alerts[position] + ".mp3");
m.setDataSource(descriptor.getFileDescriptor(),
descriptor.getStartOffset(), descriptor.getLength());
descriptor.close();
m.prepare();
m.start();
} catch (Exception e) {
e.printStackTrace();
}