Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.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
Java 我想创建一个全球媒体播放器,无论显示哪种布局,它都将继续播放_Java_Android_Eclipse_Adt - Fatal编程技术网

Java 我想创建一个全球媒体播放器,无论显示哪种布局,它都将继续播放

Java 我想创建一个全球媒体播放器,无论显示哪种布局,它都将继续播放,java,android,eclipse,adt,Java,Android,Eclipse,Adt,我不想在menu类中创建一个,而是想在menu类之外创建一个全局的,我可以调用它来保持声音播放,无论启动哪个活动。我是java的noob,但我已经搜索过了,找不到解决方案。这是我的“菜单”活动。正如您所看到的,我的MediaPlayer snd是本地的,因此在调用onPause方法时它会暂停 public class Menu extends Activity{ MediaPlayer snd; ToggleButton btnSound; @Override protected v

我不想在menu类中创建一个,而是想在menu类之外创建一个全局的,我可以调用它来保持声音播放,无论启动哪个活动。我是java的noob,但我已经搜索过了,找不到解决方案。这是我的“菜单”活动。正如您所看到的,我的MediaPlayer snd是本地的,因此在调用onPause方法时它会暂停

    public class Menu extends Activity{

MediaPlayer snd;
ToggleButton btnSound;

@Override
protected void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.menu);
    snd = MediaPlayer.create(getApplicationContext(), R.raw.bgmusic);
    snd.start();
    btnSound = (ToggleButton) findViewById(R.id.tglSound);

@Override
protected void onPause() {
    super.onPause();
    snd.pause();
}

问题的答案在于Android参考:

如果您希望您的媒体在后台播放,即使您的 应用程序不在屏幕上,也就是说,您希望它继续播放 当用户与其他应用程序交互时,您必须 启动服务并从此处控制MediaPlayer实例。你 应注意此设置,因为用户和系统 对运行后台应用程序的方式有期望 服务应该与系统的其余部分交互。如果你的 应用程序未达到这些期望,用户可能会有 糟糕的经历。本节介绍您应该解决的主要问题 了解并提供有关如何处理这些问题的建议


问题的答案在于Android参考:

如果您希望您的媒体在后台播放,即使您的 应用程序不在屏幕上,也就是说,您希望它继续播放 当用户与其他应用程序交互时,您必须 启动服务并从此处控制MediaPlayer实例。你 应注意此设置,因为用户和系统 对运行后台应用程序的方式有期望 服务应该与系统的其余部分交互。如果你的 应用程序未达到这些期望,用户可能会有 糟糕的经历。本节介绍您应该解决的主要问题 了解并提供有关如何处理这些问题的建议


创建类似以下代码段的服务:

public class whatEverYourServiceName extends Service{


@Override
public void onStart(Intent intent, int startId){
super.onStart(intent, startId);

//Add your code here mate

}


@Override
public void onDestroy(){
super.onDestroy();

//Add what do you want to do here when the service is stop like do a backflip
snd.pause();
}

@Override
public IBinder onBind(Intent arg0) {

return null;
}

}
然后用这个来称呼它

Intent it = new Intent();
it.setAction("your.package.name.whatEverYourServiceName");
startService(it);
然后将其添加到您的清单中

 <service
    android:name="your.package.name.whatEverYourServiceName"
    android:label="Your Service Homie"
    android:process=":my_process" >
    <intent-filter>
        <action android:name="your.package.name.whatEverYourServiceName" >
        </action>
    </intent-filter>
</service>

希望有帮助。

创建一个类似以下代码片段的服务:

public class whatEverYourServiceName extends Service{


@Override
public void onStart(Intent intent, int startId){
super.onStart(intent, startId);

//Add your code here mate

}


@Override
public void onDestroy(){
super.onDestroy();

//Add what do you want to do here when the service is stop like do a backflip
snd.pause();
}

@Override
public IBinder onBind(Intent arg0) {

return null;
}

}
然后用这个来称呼它

Intent it = new Intent();
it.setAction("your.package.name.whatEverYourServiceName");
startService(it);
然后将其添加到您的清单中

 <service
    android:name="your.package.name.whatEverYourServiceName"
    android:label="Your Service Homie"
    android:process=":my_process" >
    <intent-filter>
        <action android:name="your.package.name.whatEverYourServiceName" >
        </action>
    </intent-filter>
</service>

希望有帮助。

实现您的需求的最佳方法是使用服务。您可以在应用程序初始化时启动服务。在服务内部启动mediaplayer并开始播放。因此,即使您正在导航到下一个或其他活动,媒体也会继续播放。您还可以在启动广告停止时为服务提供属性。如果没有暂停或停止mediaplayer,您只需停止服务,mediaplayer也将停止播放。希望这确实能帮助您。

实现您的需求的最佳方法是使用服务。您可以在应用程序初始化时启动服务。在服务内部启动mediaplayer并开始播放。因此,即使您正在导航到下一个或其他活动,媒体也会继续播放。您还可以在启动广告停止时为服务提供属性。如果没有暂停或停止mediaplayer,您只需停止服务,mediaplayer也将停止播放。希望这确实能帮助您。

为此使用服务。使用服务就可以了为此目的使用服务。使用一个服务就可以了,我宁愿使用一个全局MediaPlayer和ToggleButton,而不是一个服务。我想知道无论我在哪个活动或内容视图上,切换按钮是否被选中,并播放global MediaPlayer。不要使用“global MediaPlayer”。使用服务。将切换按钮的值存储在服务中,如果需要访问切换按钮,可以将服务绑定到活动,也可以扩展mediaplayer以拥有一个额外字段(并从服务中使用该字段)。有多种方法可以解决这个问题,使用“global mediaplayer”可能是最糟糕的主意:)与其使用服务,不如使用global mediaplayer和ToggleButton。我想知道无论我在哪个活动或内容视图上,切换按钮是否被选中,并播放global MediaPlayer。不要使用“global MediaPlayer”。使用服务。将切换按钮的值存储在服务中,如果需要访问切换按钮,可以将服务绑定到活动,也可以扩展mediaplayer以拥有一个额外字段(并从服务中使用该字段)。解决这个问题有多种方法,使用“全球媒体播放器”可能是最糟糕的主意:)