Android MediaPlayer在恢复应用程序后不会播放



在我的应用程序中有几个短(不到1秒(的声音。因此MediaPlayer根据图表(https://developer.android.com/images/mediaplayer_state_diagram.gif(。

我想再播放一遍。它工作得很好,直到几次最小化和恢复应用程序-然后没有声音,在logCat中,我可以看到错误:

start called in state 0, mPlayer(0x90279300)
E/MediaPlayer: error (-38, 0)
E/MediaPlayer: Error (-38,0)

在活动类的顶部是媒体播放器定义的(所有声音(,如下所示:

private  MediaPlayer mpStart;

以及在onCreate:中

mpStart = MediaPlayer.create(this, R.raw.gong);

播放声音时使用:

mpStart.start();

在其他一些功能中。。。

由于在最小化应用程序过程中出现问题,我再次尝试在onResume 中添加

mpStart = MediaPlayer.create(this, R.raw.gong);

但这于事无补。

开始前我已测试添加mpStart.pause((或stop((和prepare((,但问题仍然存在。

我正在使用API 23

事实是,您在任何时候都不会停止媒体播放器。

在你的点击监听器结构中,你的代码是

1.停止播放((;2.mpStart=MediaPlayer.create(PlayaudioActivity.this,(此处为您的音频原始文件(;3.mpStart.start((;

下面是stopPlaying((函数。

private void stopPlaying() {
if (mpStart!= null) {
mpStart.stop();
mpStart.release();
mpStart= null;
}
}

所以我把每个start((都改为:

if (mpStop != null) {
mpStop.stop();
mpStop.release();
mpStop = null;
}
mpStop = MediaPlayer.create(kontext, R.raw.zvukovy_signal_konec);
mpStop.start();

我已经对这个应用程序进行了大量的最小化和阿根宁恢复测试,不幸的是,一段时间后它再次停止播放声音。

这里有一个更长的日志,有几次播放声音的尝试:

2021-04-13 20:10:40.008 17042-17042/com.fiksoftware.flexibilnitrenink I/MediaPlayer: [HSM] stayAwake false uid: 10098, pid: 17042
2021-04-13 20:10:40.010 17042-17042/com.fiksoftware.flexibilnitrenink I/MediaPlayer: Pid:17042 MediaPlayer destructor
2021-04-13 20:10:40.017 17042-17042/com.fiksoftware.flexibilnitrenink I/MediaPlayer: setDataSource(65, 158552, 17607)
2021-04-13 20:10:40.029 17042-17042/com.fiksoftware.flexibilnitrenink I/MediaPlayer: [HSM] stayAwake true uid: 10098, pid: 17042
2021-04-13 20:10:40.029 17042-17042/com.fiksoftware.flexibilnitrenink I/MediaPlayer: Pid:17042 MediaPlayer::start
2021-04-13 20:10:40.032 17042-17042/com.fiksoftware.flexibilnitrenink W/MediaPlayer: mediaplayer went away with unhandled events
2021-04-13 20:10:40.054 17042-17055/com.fiksoftware.flexibilnitrenink W/HwMediaMonitorManager: HwMediaMonitorService not published, waiting...
2021-04-13 20:10:40.055 17042-17055/com.fiksoftware.flexibilnitrenink I/HwMediaMonitorManager: The HwMediaMonitorService is NULL, write exception Log failed(long mode)! eventId(916010106), eventLevel(3), subType(1)
2021-04-13 20:10:40.055 17042-17055/com.fiksoftware.flexibilnitrenink E/MediaPlayer: error (1, -19)
2021-04-13 20:10:40.055 17042-17042/com.fiksoftware.flexibilnitrenink E/MediaPlayer: Error (1,-19)
2021-04-13 20:10:40.055 17042-17042/com.fiksoftware.flexibilnitrenink I/MediaPlayer: [HSM] stayAwake false uid: 10098, pid: 17042
2021-04-13 20:10:43.036 17042-17042/com.fiksoftware.flexibilnitrenink I/MediaPlayer: [HSM] stayAwake false uid: 10098, pid: 17042
2021-04-13 20:10:43.037 17042-17042/com.fiksoftware.flexibilnitrenink E/MediaPlayer: stop called in state 0, mPlayer(0x8f6e0480)
2021-04-13 20:10:43.037 17042-17042/com.fiksoftware.flexibilnitrenink E/MediaPlayer: error (-38, 0)
2021-04-13 20:10:43.038 17042-17042/com.fiksoftware.flexibilnitrenink I/MediaPlayer: [HSM] stayAwake false uid: 10098, pid: 17042
2021-04-13 20:10:43.040 17042-17042/com.fiksoftware.flexibilnitrenink I/MediaPlayer: Pid:17042 MediaPlayer destructor
2021-04-13 20:10:43.046 17042-17042/com.fiksoftware.flexibilnitrenink I/MediaPlayer: setDataSource(65, 694412, 2288)
2021-04-13 20:10:43.059 17042-17042/com.fiksoftware.flexibilnitrenink I/MediaPlayer: [HSM] stayAwake true uid: 10098, pid: 17042
2021-04-13 20:10:43.060 17042-17042/com.fiksoftware.flexibilnitrenink I/MediaPlayer: Pid:17042 MediaPlayer::start
2021-04-13 20:10:43.062 17042-17042/com.fiksoftware.flexibilnitrenink W/MediaPlayer: mediaplayer went away with unhandled events
2021-04-13 20:10:43.085 17042-17055/com.fiksoftware.flexibilnitrenink W/HwMediaMonitorManager: HwMediaMonitorService not published, waiting...
2021-04-13 20:10:43.085 17042-17055/com.fiksoftware.flexibilnitrenink I/HwMediaMonitorManager: The HwMediaMonitorService is NULL, write exception Log failed(long mode)! eventId(916010106), eventLevel(3), subType(1)
2021-04-13 20:10:43.085 17042-17055/com.fiksoftware.flexibilnitrenink E/MediaPlayer: error (1, -19)
2021-04-13 20:10:43.086 17042-17042/com.fiksoftware.flexibilnitrenink E/MediaPlayer: Error (1,-19)
2021-04-13 20:10:43.086 17042-17042/com.fiksoftware.flexibilnitrenink I/MediaPlayer: [HSM] stayAwake false uid: 10098, pid: 17042
2021-04-13 20:10:44.062 17042-17042/com.fiksoftware.flexibilnitrenink I/MediaPlayer: [HSM] stayAwake false uid: 10098, pid: 17042
2021-04-13 20:10:44.062 17042-17042/com.fiksoftware.flexibilnitrenink E/MediaPlayer: stop called in state 0, mPlayer(0x8f6e0480)
2021-04-13 20:10:44.062 17042-17042/com.fiksoftware.flexibilnitrenink E/MediaPlayer: error (-38, 0)
2021-04-13 20:10:44.063 17042-17042/com.fiksoftware.flexibilnitrenink I/MediaPlayer: [HSM] stayAwake false uid: 10098, pid: 17042
2021-04-13 20:10:44.065 17042-17042/com.fiksoftware.flexibilnitrenink I/MediaPlayer: Pid:17042 MediaPlayer destructor
2021-04-13 20:10:44.071 17042-17042/com.fiksoftware.flexibilnitrenink I/MediaPlayer: setDataSource(65, 694412, 2288)
2021-04-13 20:10:44.085 17042-17042/com.fiksoftware.flexibilnitrenink I/MediaPlayer: [HSM] stayAwake true uid: 10098, pid: 17042
2021-04-13 20:10:44.086 17042-17042/com.fiksoftware.flexibilnitrenink I/MediaPlayer: Pid:17042 MediaPlayer::start
2021-04-13 20:10:44.088 17042-17042/com.fiksoftware.flexibilnitrenink W/MediaPlayer: mediaplayer went away with unhandled events

请问哪里可能有问题?

最新更新