【发布时间】:2016-04-11 18:28:25
【问题描述】:
我的应用只播放一次声音。通过按下按钮调用播放声音方法。如果播放了一个,则两者都不会再次播放。
我做错了什么?
public class ScanBarcodeActivity extends AppCompatActivity {
MediaPlayer mp;
@Override
protected void onCreate(Bundle savedInstanceState) {
//other stuff
mp = new MediaPlayer();
}
public void playSuccessBeep() {
try {
if (mp.isPlaying()) {
mp.stop();
mp.release();
mp = new MediaPlayer();
}
AssetFileDescriptor descriptor = getAssets().openFd("Success.wav");
mp.setDataSource(descriptor.getFileDescriptor(), descriptor.getStartOffset(), descriptor.getLength());
descriptor.close();
mp.prepare();
mp.setVolume(1f, 1f);
mp.setLooping(false);
mp.start();
} catch (Exception e) {
e.printStackTrace();
}
}
public void playIncorrectBeep() {
try {
if (mp.isPlaying()) {
mp.stop();
mp.release();
mp = new MediaPlayer();
}
AssetFileDescriptor descriptor = getAssets().openFd("Error.wav");
mp.setDataSource(descriptor.getFileDescriptor(), descriptor.getStartOffset(), descriptor.getLength());
descriptor.close();
mp.prepare();
mp.setVolume(1f, 1f);
mp.setLooping(false);
mp.start();
} catch (Exception e) {
e.printStackTrace();
}
}
}
【问题讨论】:
标签: java android android-mediaplayer