2017-08-11 78 views
0

我使用下面的代碼開始播放本地音頻文件。令我失望的是,我的Android模擬器上沒有顯示任何通知。經過一番挖掘,我注意到Android MediaNotificationManager已將所有代碼註釋掉了。Android上的Xamarin MediaMager通知

我可以從GitHub上的其他人看到,其他人確實似乎有通知(具有諷刺意味的是,有些人似乎有擺脫他們的問題 - Example),所以我需要什麼才能得到它?

IMediaFile mediaFile = new MediaFile(playRequest.Path, MediaFileType.Audio, ResourceAvailability.Local); 
mediaFile = await CrossMediaManager.Current.MediaExtractor.ExtractMediaInfo(mediaFile); 
await CrossMediaManager.Current.Play(mediaFile); 

CrossMediaManager.Current.MediaNotificationManager.StartNotification(mediaFile); 
CrossMediaManager.Current.MediaNotificationManager.UpdateNotifications(mediaFile, MediaPlayerStatus.Playing); 

回答

0

我發現了一個原因。 Android上的通知需要一個圖標。通過檢查MediaNotificationManager的源代碼,我發現在Android上它實際上處理完全其他類中的通知:在MediaSession中找到MediaNotificationManagerImplementation。 在那裏,我還了解到,它會尋找Android.Graphics.Bitmap類型的圖標元數據屬性Art。奇怪的是,物業ArtUri不用於任何事情。

如果此屬性爲null,它會尋找在資源繪製,名爲xam_mediamanager_notify_ic。如果找不到,它將使用應用程序圖標。

現在,這解決了我所有的Android需求。然而,它的處理完全不同的其他平臺上,我還沒有找到如何設置UWP藝術(和我沒有測試的iOS還)。