0

当屏幕显示自行或手动关闭时,有没有办法阻止媒体控制器暂停。我的应用程序使用媒体控制器从互联网流式传输音频文件,因此即使屏幕关闭,我也需要它继续播放。任何帮助将非常感激。

这是我的媒体控制器类的代码:

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;


    }
}

谢谢

4

1 回答 1

0

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

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

getWindow().setFlags(android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON,
                     android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

但是,这可能不会阻止用户点击锁定按钮并手动关闭屏幕并结束音频播放。

其次,您可以创建一个带有 MediaPlayer 的服务,以在后台播放您的音频流并响应来自您的应用程序的播放/暂停命令:http: //developer.android.com/guide/topics/media/mediaplayer.html#mpandservices

于 2012-11-20T19:30:53.313 回答