Merhabalar,
Bu yazımda sizlere Xamarin.Forms’a (4.5) yeni eklenen Media Element özelliğinden bahsedeceğim. Xamarin.Forms kullanarak geliştirdiğimiz mobil uygulamalarımızda ihtiyaç duyduğumuz video işlemlerini genelde 3rd party paketlerle halletmeye çalıştık. Bu paketler çoğu yerde yardımcı oldu fakat Xamarin.Forms’u geliştiren yazılımcılar bu ihtiyacı framework’un içerisinde geliştirmeye karar verdiler.
Yeni gelen Media Element’in başlıca özelliklerinden bahsetmek gerekirse;
- Local veya remote bir video’yu kullanabiliyorsunuz
- Aspect ratio ayarı yapabiliyorsunuz
- Video/Image gibi media elementleri gibi çalışıyorsanız gerçekten ihtiyacınız oluyor
- Volume, AutoPlay, ShowsPlaybackControls, IsLooping, CurrentState gibi propertylerle temel ihtiyaçlarımız hepsi karşılanmış
- MediaFailed, MediaEnded, VolumeRequested, PositionRequested, SeekCompleted, MediaOpened gibi eventlerle ihtiyacımız olan kullanım esnekliği sağlanmış
- Pause, Play, Stop methodları ile ekstra kolaylıklar verilmiş
Genel olarak baktığımızda bir media temel beklentilerimizi fazlasıyla karşılayan bir kontrol kullanımımız için Xamarin.Forms 4.5 ile gelmiş diyebiliriz.
Sizlerin de takip ettiği gibi artık Xamarin.Forms framework’une yeni gelen elementlerin hepsi preview olarak geliyor ve experimental olarak kullanabiliyoruz. Media Elementini de Experimental olarak flaglamemiz gerekiyor. Yalnız bu sefer platform spesifik yapmamıza gerek yok, direkt App.xaml.cs içerisinde Device sınıfı üzerinden flag işlemini yapabiliyoruz.
Device.SetFlags(new string[] { “MediaElement_Experimental” });
Local video kullanımında dikkat etmemiz gereken platform spesifik işlemler var. Videolar iOS için Resources klasorü altında olmalı ve Build Action BundleResource olarak işaretlenmeli, Android için raw klasörü içerisinde olmalı ve Build Action AndroidResource olarak işaretlenmelidir. UWP için ise, direkt proje dosyasının içerisinde Build Action Content olarak işaretlenmelidir. URI şema olarak ms-appx: /// kullanılmalıdır.
Genel olarak yeni elementlerin ve/ya kontrollerin çıkış amacı 3rd party paketlerin bize sunduğu hizmetleri karşılamak ve kullanım kolaylığı ile hızlı mobil uygulama geliştirebilmek.
Çok basit bir kod örneği ile kullanıma hazır bir media element 🙂
<MediaElement Source="https://archive.org/download/BigBuckBunny_328/BigBuckBunny_512kb.mp4" ShowsPlaybackControls="True"/> Kaynak: https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/mediaelement