Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.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
Android mediacontroller在显示器关闭时暂停?_Android_Mediacontroller - Fatal编程技术网

Android mediacontroller在显示器关闭时暂停?

Android mediacontroller在显示器关闭时暂停?,android,mediacontroller,Android,Mediacontroller,当屏幕显示自行或手动关闭时,是否有方法阻止mediacontroller暂停。我的应用程序使用mediacontroller从互联网传输音频文件,因此即使屏幕关闭,我也需要它继续播放。 任何帮助都将不胜感激 以下是我的mediacontroller类的代码: import android.app.Activity; import android.content.Context; import android.view.KeyEvent; import android.widget.MediaCo

当屏幕显示自行或手动关闭时,是否有方法阻止mediacontroller暂停。我的应用程序使用mediacontroller从互联网传输音频文件,因此即使屏幕关闭,我也需要它继续播放。 任何帮助都将不胜感激

以下是我的mediacontroller类的代码:

import android.app.Activity;
import android.content.Context;
import android.view.KeyEvent;
import android.widget.MediaController;

public class WillMediaController extends MediaController {

    public WillMediaController(Context context) {
        super(context);
    }

    @Override
    public void hide() {
        // Do Nothing to show the controller all times

    }

    @Override
    public boolean dispatchKeyEvent(KeyEvent event)
    {
        if (event.getKeyCode() == KeyEvent.KEYCODE_BACK)
        {
            ((Activity) getContext()).finish();

        }else{
            super.dispatchKeyEvent(event);
        }
        if (event.getKeyCode() == KeyEvent.KEYCODE_VOLUME_DOWN ||
                event.getKeyCode() == KeyEvent.KEYCODE_VOLUME_UP) {
            // don't show the controls for volume adjustment
            return super.dispatchKeyEvent(event);
        }
        return true;


    }
}

谢谢

我不确定是否有办法防止MediaController在活动暂停时(即屏幕关闭时)自动暂停,但我有几个想法:

首先,您可以尝试通过以下方式禁用活动中的屏幕超时:

getWindow().setFlags(android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON,
                     android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
但是,这可能不会阻止用户点击锁定按钮并手动关闭屏幕并结束音频播放

其次,您可以使用MediaPlayer创建一项服务,在后台播放音频流,并响应应用程序中的播放/暂停命令: