首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android:将Media-Player App设置为标准音乐播放器,以捕捉外部媒体输入(下一首歌曲等)

Android:将Media-Player App设置为标准音乐播放器,以捕捉外部媒体输入(下一首歌曲等)
EN

Stack Overflow用户
提问于 2018-10-30 18:45:45
回答 1查看 17关注 0票数 0

我正在开发一个媒体应用程序,可以在手机上播放mp3。就这么简单。但是,我的耳机上有一个“开始/停止”按钮。当我点击这个按钮时,我的手机会自动打开三星音乐,并播放一首当前处于等待状态的歌曲,而不是停止或在我的活跃打开的应用程序上播放这些歌曲。这是我的广播接收器中的按钮:

代码语言:javascript
复制
[BroadcastReceiver]
    [IntentFilter(new[] { Intent.ActionMediaButton })]
    public class MyMediaButtonBroadcastReceiver : BroadcastReceiver
    {
        public string ComponentName { get { return Class.Name; } }

        Activity_Player xy = new Activity_Player();

        public override void OnReceive(Context context, Intent intent)
        {
            if (intent.Action != Intent.ActionMediaButton)
                return;

            var keyEvent = (KeyEvent)intent.GetParcelableExtra(Intent.ExtraKeyEvent);

            switch (keyEvent.KeyCode)
            {
                case Keycode.MediaPlay:
                    Toast.MakeText(Activity_Player.ctx, "XY", ToastLength.Short).Show();
                    break;
                case Keycode.MediaPlayPause:
                    Toast.MakeText(Activity_Player.ctx, "XY", ToastLength.Short).Show();
                    break;
                case Keycode.MediaNext:
                    xy.ChooseRandomNewSongAndPlay(false);
                    break;
                case Keycode.MediaPrevious:
                    Toast.MakeText(Activity_Player.ctx, "XY", ToastLength.Short).Show();
                    break;
            }
        }

    }

所以我的问题是:

1.)我是否需要像这样在我的主活动中初始化这个类:

代码语言:javascript
复制
        receiver = new MyMediaButtonBroadcastReceiver();

2.)我需要在我的清单中设置什么吗?因为在那里,接收者没有注册。

3.)我是否需要将自己的媒体播放器应用程序设置为某种"standart“应用程序?(也许在编程上,也许在android操作系统中的某个地方?),这样暂停和播放按钮就会映射到我的应用程序,而不是standart媒体播放器?

4.)您看,我在switch语句中使用了toast语句,只是为了看看是否会触发任何东西。到目前为止,没有什么是这样的。我是不是还漏掉了什么?

谢谢你这么经常帮我!

EN

回答 1

Stack Overflow用户

发布于 2018-10-30 19:14:57

所以,为了回答我的所有问题:

1) 2) 3) 4)

代码语言:javascript
复制
    private void RegisterBroadCastReceiver()
    {
        var am = (AudioManager)this.GetSystemService(AudioService);
        var componentName = new ComponentName(PackageName, new MyMediaButtonBroadcastReceiver().ComponentName);
        am.RegisterMediaButtonEventReceiver(componentName);
    }

..。在OnCreate中执行。

故事结束了!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53062594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档