使用Xamarin MediaManager插件的播放器通知

时间:2017-07-11 00:33:58

标签: xamarin bluetooth xamarin.forms

我正在使用媒体管理器nuget插件,这很棒,但对于我的生活,我无法通过锁定屏幕或汽车蓝牙来显示通知。我正在使用以下内容显示通知(在OnAppearing中设置)

ViewModel.PropertyChanged += (sender, e) =>
        {
            switch (e.PropertyName)
            {
                case "RadioSchedule":
                    if (listData != null)
                    {
                        listData.ItemsSource = null;
                        var first = ViewModel.RadioSchedule[0];
                        Device.BeginInvokeOnMainThread(() =>
                        {
                            listData.ItemsSource = ViewModel.RadioSchedule;
                            MediaFile.Metadata.Artist = MediaFile.Metadata.DisplaySubtitle = MediaFile.Metadata.AlbumArtist = first.Artist;
                            MediaFile.Metadata.Title = MediaFile.Metadata.DisplayTitle = first.Track;
                            MediaFile.Metadata.DisplayIcon = new Image { Source = "icon".CorrectedImageSource() };
                            MediaFile.Metadata.BluetoothFolderType = "1";
                            MediaFile.Type = MediaFileType.Audio;
                            MediaFile.Url = Constants.RadioStream;
                            MediaFile.Availability = ResourceAvailability.Remote;
                            MediaFile.MetadataExtracted = true;
                            MediaFile.Metadata.Date = DateTime.Now;
                            MediaFile.Metadata.Duration = 300;
                            MediaFile.Metadata.Genre = "Rock";
                            MediaFile.Metadata.TrackNumber = MediaFile.Metadata.NumTracks = 1;
                            MediaFile.Metadata.DisplayDescription = "Radio Station";
                            if (!ViewModel.NotificationStarted)
                            {
                                if (CrossMediaManager.Current.MediaNotificationManager != null)
                                    CrossMediaManager.Current.MediaNotificationManager.StartNotification(MediaFile);
                                ViewModel.NotificationStarted = true;
                            }
                            CrossMediaManager.Current.MediaNotificationManager?.UpdateNotifications(MediaFile, MediaPlayerStatus.Playing);
                        });
                    }
                    break;

代码本身被击中(我可以设置断点并且它们被击中)。我也在UI线程上尝试过它。

播放列表来自webapi,效果很好。通知程序在设备媒体播放器(iOS和Android)上提供未知/未知,并且没有在车内。对于Android,自述文件说使用的权限也已设置。

我需要做些什么才能让它发挥作用?这是一个Xam.Forms包,而不是原生的。

使用以下代码

在课程中进一步启动MediaPlayer
CrossMediaManager.Current.Play(Constants.RadioStream, MediaFileType.Audio, ResourceAvailability.Remote);

其中Constants.RadioStream是无线电流的URL。

0 个答案:

没有答案