如何在android中以编程方式停止其他活动的媒体播放器?
你好我想在我的应用程序使用媒体播放器,我已经试图阻止来自其他活动的媒体播放器我的编码是以下几点:如何在android中以编程方式停止其他活动的媒体播放器?
FirstActivity:
public void stop() {
if (playPause == false) {
control.setBackgroundResource(R.drawable.play);
mediaPlayer.stop();
new Player().cancel(true);
media.stop();
media.reset();
mediaPlayer.reset();
if (mediaPlayer.isPlaying())
mediaPlayer.stop();
mediaPlayer.reset();
media.stop();
playPause = true;
} else {
control.setBackgroundResource(R.drawable.pause);
if (intialStage) {
new Player()
.execute(URL);
} else {
if (!mediaPlayer.isPlaying())
mediaPlayer.start();
}
playPause = false;
}
}
SecondActivity:
不得不停止媒体播放器后所述定时器是端:
@Override
public void onFinish() {
textViewTime.setText(hmsTimeFormatter(timeCountInMilliSeconds));
// call to initialize the progress bar values
setProgressBarValues();
// hiding the reset icon
imageViewReset.setVisibility(View.GONE);
// changing stop icon to start icon
imageViewStartStop.setImageResource(R.drawable.icon_start);
// making edit text editable
editTextMinute.setEnabled(true);
// changing the timer status to stopped
timerStatus = TimerStatus.STOPPED;
MainActivity main = new MainActivity();
main.stop();
}
}.start();
countDownTimer.start();
}
上述编码是示出了错误:
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ImageView.setBackgroundResource(int)' on a null object reference
at com.digitamatix.mukilfm.MainActivity.stop(MainActivity.java:549)
我必须阻止媒体播放器中的第一个活动,请帮我在我的编码来解决我的问题
看到我已经开始与startActivityForResult活动。 onActivityResult你会得到结果。
startActivityForResult(Activity1.createIntent(this), 1001);
//handle callback result
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
if (requestCode == 1001) {
}
}
}
下面的代码会在下一个要回调的地方调用并完成活动。你可以通过这个意图传递任何价值。
Intent intent = new Intent();
setResult(RESULT_OK, intent);
finish();
因此,根据要求,你可以使用这个。停止媒体播放器。其他选项本地广播也。 希望这会帮助你。
(根据您发布的代码)
看起来像这里的问题是,你正在调用一个方法,该方法引用了一个不可见的活动中的xml resource
。
您正在创建的MainActivity
的istance
但是,因为它从来没有被所示,onCreate
和其他生命周期方法从未被触发,你的control
为空。
您有做至少3种方式:
-
创建不涉及任何XML资源的方法,它只是停止播放1B。尝试使用setResult
,引用正在运行的活动的新度并不是一个好习惯。只需使用StartActivityForResult(activityB)
和setResult(res)
来触发onActivityResult
回调。 - 将播放器在
Singleton
和引用它,无论你是 - 使用片段导航,而不是活动,指的是玩家的主要活动
希望这有助于!
请给我任何教程,这 – udhaya
@udhaya我添加了一个链接和一些更多的描述,这些是易于谷歌的东西,我不知道任何教程比其他更好 –
您正在创建MainActivity而不是这个,你可以使用广播接收器或接口停止 –
的新实例,请给我任何编码教程 – udhaya