2017-08-11 14 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という全く別のクラスの通知を実際に処理することがわかりました。 そこには、メタデータのArtプロパティにタイプAndroid.Graphics.Bitmapのアイコンが表示されることもわかりました。不思議なことに、プロパティーArtUriは何も使用されていません。

このプロパティがnullの場合、リソース内にdrawableがあり、その名前はxam_mediamanager_notify_icです。何も見つからない場合は、アプリケーションアイコンを使用します。

これで、Androidに関するすべてのニーズが解決されました。しかし、それは他のプラットフォームではかなり異なった扱いをしています。まだ私はUWPでアートを設定する方法を見つけていません(まだiOSをテストしていません)。

関連する問題