Search code examples
c#.netmaui

how to play an audio file - .NET MAUI


I want to play a sound on my mobile application (for android and iOS) in certain circumstances. How can I do it?


Solution

  • There is way to play audio/video (mp3/mp4) in .NET MAUI: MediaElement control of Communitytoolkit with support for Android/iOS/Windows/Tizen/Mac.

    Use NuGet to install, search for 'CommunityToolkit.Maui.MediaElement'.

    Put local files in "Resources/Raw" with BuildAction=MauiAsset

    xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"
    

    Inside a contentPage (xaml/c#)

    <toolkit:MediaElement x:Name="correctMediaElement" IsVisible="false"
                Source="embed://crrect_answer2.mp3" />
    
    internal static void PlaySound()
    {
        if (correctMediaElement.CurrentState != CommunityToolkit.Maui.Core.Primitives.MediaElementState.Stopped &&
            correctMediaElement.CurrentState != CommunityToolkit.Maui.Core.Primitives.MediaElementState.Paused)
        {
            correctMediaElement.Stop();
        }
    
        if (correctMediaElement.Position != TimeSpan.Zero)
        {
            //Will Play sound here
            correctMediaElement.SeekTo(TimeSpan.Zero);
        }
        else if (correctMediaElement.CurrentState != CommunityToolkit.Maui.Core.Primitives.MediaElementState.Playing)
        {
            correctMediaElement.Play();
        }
    }
    

    for more information:
    MediaElement doc
    DevBlogs.Microsoft.com