Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从另一个类调用MediaPlayer暂停-Android java_Java_Android - Fatal编程技术网

从另一个类调用MediaPlayer暂停-Android java

从另一个类调用MediaPlayer暂停-Android java,java,android,Java,Android,我有一个名为NowPlayingActivity和VideosActivity的课程。两者都由TabHost处理。在应用程序启动时,mediaplayer from Now PlayingActivity将自动播放歌曲。当我去参加视频活动时,会有一个可供播放的视频列表。当我单击videosactivity中的某个项目时,我想从NowPlayingActivity停止播放歌曲,以便歌曲在视频播放时停止播放 public void onItemClick(AdapterView parent, Vi

我有一个名为NowPlayingActivity和VideosActivity的课程。两者都由TabHost处理。在应用程序启动时,mediaplayer from Now PlayingActivity将自动播放歌曲。当我去参加视频活动时,会有一个可供播放的视频列表。当我单击videosactivity中的某个项目时,我想从NowPlayingActivity停止播放歌曲,以便歌曲在视频播放时停止播放

public void onItemClick(AdapterView parent, View v, int position, long id)
{
    NowPlayingActivity npa = new NowPlayingActivity();
    npa.pause();
    System.gc();
    videoColumnIndex = videoCursor.getColumnIndexOrThrow(
            MediaStore.Video.Media.DATA);
    videoCursor.moveToPosition(position);
    String filename = videoCursor.getString(videoColumnIndex);
    Log.i("FileName: ", filename);

    Intent intent = new Intent(Intent.ACTION_VIEW);
    Uri data = Uri.parse(filename);
    intent.setDataAndType(data, "video/*"); 
    startActivity(intent);
}
这是我的代码,它启动并打算播放列表中选定的视频,然后在多媒体资料中播放

我尝试从NowPlayingActivity创建一个暂停方法,然后在item click from videos活动中调用它

public void pause(){

    if(mp.isPlaying()){
        if(mp!=null){
            mp.pause();
        }
    }
}
我不知道这是否可能,但除了这个我想不出别的办法

编辑:


将MediaPlayer放入主机活动中。然后,您可以从
NowPlayingActivity
VideosActivity

调用您的操作。我在“从视频中单击项目”活动时仍有错误。应用程序崩溃。仍然无法工作。正如Wesley所说,即使我删除了mp正在播放的条件,mp也是空的。不要介意每个人,我觉得自己太笨了,因为我有一个重复的类,我不知道它是连接到我的xml的那个。对不起,请阅读编辑,我在您的
NowPlayingActivity
?if(mp.isPlaying()){中包含了日志
第410行
是什么
是哪里出了问题,当时似乎
mp
null
,所以出现了
NullPointerException
你是说我的mp inside pause()实际上是null?但它没有给我错误。
Logcat
07-14 06:18:32.526: E/AndroidRuntime(979): FATAL EXCEPTION: main
07-14 06:18:32.526: E/AndroidRuntime(979): java.lang.NullPointerException
07-14 06:18:32.526: E/AndroidRuntime(979):  at com.example.prismmediaplayer.NowPlayingActivity.pause(NowPlayingActivity.java:410)
07-14 06:18:32.526: E/AndroidRuntime(979):  at com.example.prismmediaplayer.VideosActivity$1.onItemClick(VideosActivity.java:59)
07-14 06:18:32.526: E/AndroidRuntime(979):  at android.widget.AdapterView.performItemClick(AdapterView.java:298)
07-14 06:18:32.526: E/AndroidRuntime(979):  at android.widget.AbsListView.performItemClick(AbsListView.java:1086)
07-14 06:18:32.526: E/AndroidRuntime(979):  at android.widget.AbsListView$PerformClick.run(AbsListView.java:2855)
07-14 06:18:32.526: E/AndroidRuntime(979):  at android.widget.AbsListView$1.run(AbsListView.java:3529)
07-14 06:18:32.526: E/AndroidRuntime(979):  at android.os.Handler.handleCallback(Handler.java:615)
07-14 06:18:32.526: E/AndroidRuntime(979):  at android.os.Handler.dispatchMessage(Handler.java:92)
07-14 06:18:32.526: E/AndroidRuntime(979):  at android.os.Looper.loop(Looper.java:137)
07-14 06:18:32.526: E/AndroidRuntime(979):  at android.app.ActivityThread.main(ActivityThread.java:4745)
07-14 06:18:32.526: E/AndroidRuntime(979):  at java.lang.reflect.Method.invokeNative(Native Method)
07-14 06:18:32.526: E/AndroidRuntime(979):  at java.lang.reflect.Method.invoke(Method.java:511)
07-14 06:18:32.526: E/AndroidRuntime(979):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
07-14 06:18:32.526: E/AndroidRuntime(979):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
07-14 06:18:32.526: E/AndroidRuntime(979):  at dalvik.system.NativeStart.main(Native Method)