Xamarin で音声ファイルを再生するには Simple Audio Player
プラグインが使えます。
■ コード
次のコードは、ボタンをクリックすると埋め込みリソースの音声を 3.5 秒間ループ再生します。
using System.Threading.Tasks; using Xamarin.Forms; namespace XFSimpleAudio { public partial class MainPage : ContentPage { public MainPage() { InitializeComponent(); // UI の構築(この部分は SimpleAudioPlayer の使い方とは関係ない) var button = new Button() { Text = "button" }; this.Content = button; // ボタンクリック(この中が SimpleAudioPlayer の使い方) button.Clicked += (sendeer, e) => { // リソースの音声を 3.5 秒間ループ再生 Plugin.SimpleAudioPlayer.Abstractions.ISimpleAudioPlayer player = Plugin.SimpleAudioPlayer.CrossSimpleAudioPlayer.Current; using (var stream = typeof(App).Assembly.GetManifestResourceStream("XFSimpleAudio.Resources.voice.m4a")) player.Load(stream); player.Loop = true; player.Play(); Task.Delay(3_500).Wait(); player.Stop(); }; } } }
使い方は、上記 GitHub の readme に書かれているとおりですが、ループ再生ができそうだったのでループ再生してみました。
リソースの音声は、プロジェクト上に次のように取り込んでいます。
画像の voice.m4a
が音声ファイルです。
音声ファイルは用意するのが面倒だったので、iPhone のボイスメモで記録した音声で試しています。
たったこれだけで音声が再生できました。素晴らしいですね。