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

时间:2012-11-20 18:58:27

标签: android mediacontroller

有没有办法在屏幕显示自动或手动关闭时停止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;


    }
}

由于

1 个答案:

答案 0 :(得分: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