rksoftware

Visual Studio とか C# とかが好きです

Xamarin で音声ファイルを再生する

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 のボイスメモで記録した音声で試しています。

たったこれだけで音声が再生できました。素晴らしいですね。