Quantcast
Channel: Recent Threads — Xamarin Community Forums
Viewing all articles
Browse latest Browse all 204402

How to call a AVPlayer during notification instead of 30 second max duration notification sound?

$
0
0

Hello ,

I need to play a audio file which is 3 minutes length. But default notification sound does not play more than 30 seconds. So my idea is Calling a Avplayer
which will play my desired audio. But i do not know how to call this. Can any one please help me. I will be very grateful.

I am attaching my notification method here.

public void AVPlayer()
    {
        NSUrl songURL;
        if (!MusicOn) return;
        //Song url from your local Resource  
        songURL = new NSUrl("azan.wav");
        NSError err;
        player = new AVAudioPlayer(songURL, "Song", out err);
        player.Volume = MusicVolume;
        player.FinishedPlaying += delegate {
            // backgroundMusic.Dispose();  
            player = null;
        };
        //Background Music play  
        player.Play();
    }
    public void CreateRequest(JamatTime jamat)
    {
        // Create action
        var actionID = "pause";
        var title = "PAUSE";
        var action = UNNotificationAction.FromIdentifier(actionID, title, UNNotificationActionOptions.None);

        // Create category
        var categoryID = "message";
        var actions = new UNNotificationAction[] { action };
        var intentIDs = new string[] { };
        var categoryOptions = new UNNotificationCategoryOptions[] { };
        var category = UNNotificationCategory.FromIdentifier(categoryID, actions, intentIDs, UNNotificationCategoryOptions.None);

        // Register category
        var categories = new UNNotificationCategory[] { category };
        UNUserNotificationCenter.Current.SetNotificationCategories(new NSSet<UNNotificationCategory>(categories));

        // Rebuild notification
        var content = new UNMutableNotificationContent();
        content.Title = " Jamat Time alert";
        content.Badge = 1;
        content.CategoryIdentifier = "message";
        content.Sound = UNNotificationSound.GetSound("sample.wav");

        var times = new string[] { jamat.Asr, jamat.Dhuhr, jamat.Faijr, jamat.Ishaa, jamat.Jumah, jamat.Maghib };

        int id = 0;
        foreach (var time in times)
        {
            var ndate = DateTime.ParseExact(time, "h:mm tt", null);

            var date = new NSDateComponents()
            {
                Calendar = NSCalendar.CurrentCalendar,
                Hour = ndate.Hour,
                Minute = ndate.Minute,
                Second = 0
            };

            content.UserInfo = new NSDictionary<NSString, NSString>(
                new NSString[] {
                    (NSString)"time1",
                    (NSString)"time2"
                },
                new NSString[] {
                    (NSString)DateTime.Now.ToString("h:mm tt"),
                    (NSString)time
                });

            var trigger = UNCalendarNotificationTrigger.CreateTrigger(date, true);

            // ID of Notification to be updated
            var request = UNNotificationRequest.FromIdentifier(id++.ToString(), content, trigger);

            // Add to system to modify existing Notification
            UNUserNotificationCenter.Current.AddNotificationRequest(request, (err1) =>
            {
                if (err1 != null)
                {
                    Console.WriteLine("Error: {0}", err1);
                }
                Console.WriteLine($"Success: {request}");
            });

        }
    }

Viewing all articles
Browse latest Browse all 204402

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>