Xamarin的Android使用SetSound的通知信道玩自定义音效上的通知(Xamarin A

2019-09-30 01:55发布

我有我至少每天被浪费努力使这项工作。 我想打,一旦收到通知我放在资源/原材料的MP3文件。 我不知道如何得到URI。 我的问题,请有:

1.To玩你必须把它放在资源/原材料,也可以是还资产/该Xamarin的Android项目下听起来自定义文件。

2.How做我正确地得到URI基于mp3文件驻留的位置。

这是我的代码:

private void createNotificationChannel()
        {
            var channelName = GetString(Resource.String.noti_chan_urgent);
            var channelDescription = GetString(Resource.String.noti_chan_urgent_description);

            // set the vibration patterm for the channel
            long[] vibrationPattern = { 100, 200, 300, 400, 500, 400, 300, 200, 400 };

            // Creating an Audio Attribute
            var alarmAttributes = new AudioAttributes.Builder().SetUsage(AudioUsageKind.Alarm).Build();

            // Create the uri for the alarm file
            var alarmUri = Android.Net.Uri.Parse("MyApp.Android/Resources/raw/alarm.mp3");   // this must be wrong because its not working


            // create chan1  which is the urgent notifications channel
            var chan1 = new NotificationChannel(PRIMARY_CHANNEL_ID, channelName, NotificationImportance.High)
            {
                Description = channelDescription
            };


            // set the channel properties
            chan1.EnableLights(true);
            chan1.LightColor = Color.Red;
            chan1.EnableVibration(true);   
            chan1.SetVibrationPattern(vibrationPattern);
            chan1.SetSound(alarmUri, alarmAttributes);
            chan1.SetBypassDnd(true);
            chan1.LockscreenVisibility = NotificationVisibility.Public;


            var manager = (NotificationManager)GetSystemService(NotificationService);
            manager.CreateNotificationChannel(chan1);
        }

    }

Answer 1:

我想通了,我希望这会帮助别人比得到一个downvote的问题比较好,这是你怎么做:(注意:请确保你把你的MP3文件在您Xamarin的Android项目下的资源/生/ soundFile.mp3并建立该文件作为Android的资源 )。

然后创建开放的是这样的:

Android.Net.Uri alarmUri = Android.Net.Uri.Parse(${ContentResolver.SchemeAndroidResource}://{Context.PackageName}/{Resource.Raw.soundFile}");

创建报警属性是这样的:

var alarmAttributes = new AudioAttributes.Builder()
               .SetContentType(AudioContentType.Sonification)
               .SetUsage(AudioUsageKind.Notification).Build();

最后setSound通道本身只透过Android奥利奥起(不通知,在创建应用程序启动的通道)

chan1.SetSound (alarmUri, alarmAttributes);


Answer 2:

URI = Android.Net.Uri.Parse( “android.resource://” + Application.Context.PackageName + “/原料/ SOUND2”);

只改变我不得不做出。 到Fredsomofspeech答案。

机器人的VisualStudio 9. 2019 xamarin.forms移动IOS机器人。 sound2.mp3

正在运行一个文件安卓不能玩,所以一定要确保下载测试MP3文件验证工作。



文章来源: Xamarin Android use SetSound for Notification Channel to play custom sound on notification