gpt4 book ai didi

android - 背景音乐安卓

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:19:28 26 4
gpt4 key购买 nike

好的,这是我的问题。我有一个服务类,我设法创建了媒体播放器来一直在后台播放音乐。这是代码:

package com.test.brzoracunanje;
import android.app.Service;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.IBinder;

public class BackgroundSoundService extends Service {
private static final String TAG = null;
MediaPlayer player;
public IBinder onBind(Intent arg0) {

return null;
}
@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
player = MediaPlayer.create(this, R.raw.test_cbr);
player.setLooping(true); // Set looping
player.setVolume(100,100);
player.start();
}
@Override
public void onStart(Intent intent, int startId) {
super.onStart(intent, startId);
}
public void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
}

protected void onNewIntent() {
player.pause();
}
}

但现在当我点击HOMEBACK 按钮时出现问题。它仍然播放音乐。有谁知道如何解决这个问题?

下面是我如何在我想播放音乐的类里面调用此服务的代码;

  Intent svc=new Intent(this, BackgroundSoundService.class);
startService(svc);

最佳答案

如果您只想为您的应用播放背景音乐,请在从您的应用启动的线程中播放它/使用 AsyncTask 类为您做这件事。

服务的概念是在后台运行;就背景而言,其含义通常是当您的应用界面不可见时。的确,它可以像您拥有的那样使用(如果您记得停止它)但它就是不对,它会消耗您不应该使用的资源。

如果您想在 Activity 的后台执行任务,请使用 AsyncTask。

顺便说一句,onStart 已弃用。当您使用服务时,实现 onStartCommand

更新:

我认为这段代码适合您。添加此类(包含在您的 Activity 类中)。

public class BackgroundSound extends AsyncTask<Void, Void, Void> {

@Override
protected Void doInBackground(Void... params) {
MediaPlayer player = MediaPlayer.create(YourActivity.this, R.raw.test_cbr);
player.setLooping(true); // Set looping
player.setVolume(1.0f, 1.0f);
player.start();

return null;
}

}

现在,为了控制音乐,保存您的 BackgroundSound 对象而不是匿名创建它。在您的 Activity 中将其声明为一个字段:

BackgroundSound mBackgroundSound = new BackgroundSound();

在您的 Activity 的 onResume 方法上,启动它:

public void onResume() {
super.onResume();
mBackgroundSound.execute(null);
}

然后在您的 Activity 的 onPause 方法上停止它:

public void onPause() {
super.onPause();
mBackgroundSound.cancel(true);
}

这会起作用。

关于android - 背景音乐安卓,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7928803/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com