Created
January 3, 2023 17:10
-
-
Save bbenetskyy/19179558d7f8f1b6d3dfb4a572853fa4 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using Android.Content.Res; | |
using Android.Media; | |
using Android.OS; | |
using TheLordOfTheRings.Services;//used for injecting ILogger | |
using static Microsoft.Maui.ApplicationModel.Platform; | |
using Uri = Android.Net.Uri; | |
namespace TheLordOfTheRings.MAUI.Services; | |
public partial class SoundService : IDisposable | |
{ | |
private readonly ILogger _logger; | |
MediaPlayer _mediaPlayer; | |
public SoundService(ILogger logger) | |
{ | |
_logger = logger; | |
} | |
public void PlayAndroidSound(string sound) | |
{ | |
Dispose(); | |
try | |
{ | |
_mediaPlayer = new MediaPlayer(); | |
_mediaPlayer.Prepared += MediaPlayerOnPrepared; | |
_mediaPlayer.SetDataSource(CurrentActivity!.Assets!.OpenFd(sound)); | |
_mediaPlayer.PrepareAsync(); | |
} | |
catch (Exception ex) | |
{ | |
_logger.LogError(ex); | |
} | |
} | |
private void MediaPlayerOnPrepared(object sender, EventArgs e) | |
{ | |
_mediaPlayer.Start(); | |
} | |
public void Dispose() | |
{ | |
_mediaPlayer?.Release(); | |
_mediaPlayer?.Dispose(); | |
_mediaPlayer = null; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment