8
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

updated at

Xamarin.Formsでメディア再生する

Xamarinで動画再生やオーディオ再生をしたい場合、こちらのプラグインが良さそう。
MediaManager

ただ使い方がわかりづらくはまってしまったので、備忘録を残しておきます。

まずはプラグインを追加

NuGetで"Plugin.MediaPlayer.Forms"を追加します。
この時、PCLだけではなく、Android,iOSもお忘れなく。
image1.png

動画再生画面を作成

Xaml

まずは動画を表示する画面を作成しましょう。
XamlのContentPageに下記を追加します。

XXXPage.xaml
xmlns:forms="clr-namespace:Plugin.MediaManager.Forms;assembly=Plugin.MediaManager.Forms"

動画の部分はこんな感じ。背景は黒にしておきました。

XXXPage.xaml
        <forms:VideoView x:Name="videoView"
                        AspectMode="AspectFit"
                        BackgroundColor="Black"
                        />

コードビハインド

XXXPage.xaml.cs
using Plugin.MediaManager;
using Plugin.MediaManager.Abstractions;
.
.
    public partial class MovieAppPage : ContentPage
    {
        private IPlaybackController PlaybackController => CrossMediaManager.Current.PlaybackController;

    protected override void OnAppearing()
    {
        base.OnAppearing();

        videoView.Source = "https://archive.org/download/BigBuckBunny_328/BigBuckBunny_512kb.mp4";
        PlaybackController.Play();
    }

ネイティブの設定(これを忘れると大変)

Android

イニシャライズに

MainActivity.cs
using Plugin.MediaManager.Forms.Android;
.
.

    public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
    {
            .
            .
            base.OnCreate(bundle);

            VideoViewRenderer.Init(); // << 追加

            global::Xamarin.Forms.Forms.Init(this, bundle);
            .
            .
            .
}

iOS

AppDelegate.cs
using Plugin.MediaManager.Forms.iOS;
.
.
        public override bool FinishedLaunching(UIApplication app, NSDictionary options)
        {
            global::Xamarin.Forms.Forms.Init();

            LoadApplication(new App());

            VideoViewRenderer.Init(); // << 追加

            return base.FinishedLaunching(app, options);
        }

これだけで、動画は再生されます。
動画のコントロールはまた後日。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
8
Help us understand the problem. What are the problem?