在android Fragment中按下后退按钮时,Media player会使应用程序崩溃

在android Fragment中按下后退按钮时,Media player会使应用程序崩溃,android,android-studio,android-fragments,android-mediaplayer,fileinputstream,Android,Android Studio,Android Fragments,Android Mediaplayer,Fileinputstream,在我的应用程序中,我正在播放本地存储中的音频文件,如果我单击“后退”按钮,我的应用程序就会崩溃。我尝试应用停止、释放、重置和其他媒体播放器功能 日志: 11-30 16:09:09.473 2270-2468/? E/SEC_DRM_PLUGIN_Omafl: OmaPlugin::onOpenDecryptSession(fd)::Drm2IsDrmFileByExtFd::file is NOT DRM by extension 11-30 16:09:09.473 2270-2468/?

在我的应用程序中,我正在播放本地存储中的音频文件,如果我单击“后退”按钮,我的应用程序就会崩溃。我尝试应用停止、释放、重置和其他媒体播放器功能

日志:

11-30 16:09:09.473 2270-2468/? E/SEC_DRM_PLUGIN_Omafl: OmaPlugin::onOpenDecryptSession(fd)::Drm2IsDrmFileByExtFd::file is NOT DRM by extension
11-30 16:09:09.473 2270-2468/? E/PrGenericPlugin: PrGenericPlugin::onOpenDecryptSession() onCanHandle error
11-30 16:09:09.478 8675-8761/? E/MediaPlayer: Should have subtitle controller already set
11-30 16:09:09.478 2271-2271/? E/MediaPlayerService: WFD client is not created 
11-30 16:09:09.478 2271-2271/? E/MediaPlayerService: offset error
11-30 16:09:09.478 8675-8761/? E/MediaPlayer: Unable to create media player
11-30 16:09:09.483 8675-8761/? E/MediaPlayer: stop called in state 1
11-30 16:09:09.483 8675-8761/? E/MediaPlayer: error (-38, 0)
11-30 16:09:09.483 8675-8761/? E/MediaPlayer: Should have subtitle controller already set
11-30 16:09:09.488 2271-8776/? E/OMXNodeInstance: getParameter(133:SEC.mp3.dec, ??(0x7f010008)) ERROR: UnsupportedIndex(0x8000101a)
11-30 16:09:21.548 2912-3282/? E/Watchdog: !@Sync 9745 [11-30 16:09:21.553]
代码

请尝试以下代码

@Override
public void onBackPressed() {
    mediaPlayer.stop();
}

重写活动中的onBackPressed方法

public void onBackPressed() {
    if(media player is playing) {
        // then stop it
      }
        super.onBackPressed();

}

更改onPause以释放所有MediaPlayer对象,而不是尝试重新启动当前播放的歌曲

暂停时的公共无效 {


}`

在fragment onbackpressed override方法中不适用在fragment中是否可能?是的,在活动中设置了一个fragment,当您单击手机的后退按钮时会调用onbackpressed。因为您正在重写该函数,所以这将起作用。如果这有效,请投票Override方法要求一个接口来实现它你能用整个代码编辑你的问题吗?您是否实现了任何接口?我发布了我的代码。由于字符限制,一些函数可能会丢失。崩溃解决方案可能重复?没有解决方案。你不能在这里再次提问。试过mediaplayer.release;不工作仍然面对同样的问题issue@MahalakshmiSaravanan在回调方法中使用realse方法
public void onBackPressed() {
    if(media player is playing) {
        // then stop it
      }
        super.onBackPressed();

}
super.onPause();

song.release();
song1.release();
//and so on