maui-linux/Xamarin.Forms.Platform
Shane Neuville b907376605
[Android,iOS,UWP,WPF] MediaElement control (#3482) (#9439)
* MediaElement and iOS/Android/UWP renderers.

* Added basic WPF renderer. Fixed sizing issue on UWP renderer. Added sample page to ControlGallery app

* MediaEnded event on UWP. Source Uri convert ms-appx to pack:// uri scheme on WPF

* code style fixes

* resolving conflicts

* Following discussion on PR made NaturalDuration a nullable TimeSpan so that can determine when value is not present.
Added CanSeek property to indicate when Position property can be set.
Added support for KeepScreenOn to WPF renderer.
Improved ControlGallery page with separate Play/Pause/Stop buttons and label to display current state

* coding style fixes

* coding style fixes 2

* Improved media controls on demo page. Renderer enhancements for Android and iOS

* Improved logic around media metadata in iOS renderer.
Switched to https video uri to allow playback in iOS. Increased media control button sizes

* Improved parsing of ms-appdata uris supporting both the local and temp folders

* Removed redundant Debug.WriteLines. Removed XML docs from MediaElement and MediaElementState types.

* Bug fix for iOS MediaElement.Source Uri escape handling

* Adding MediaElement fast renderer for Android

* Rearchitecting the Element/Renderer connectivity. New WPF,UAP and Android FastRenderer complete. Still requires Android classic renderer and iOS renderer...

* More MediaElement renderer development. Converted iOS to a FastRenderer

* Latest android renderer

* Android renderer fix for StopPlayback reusability. MetadataRetreiver now loaded async.

* Added an IMediaElementController property to Android renderers to simplify code.

* Simplified Aspect property

* Changed AreTransportControlsEnabled to ShowsPlaybackControls. Removed commented-out code.

* merging

* merging

* added mediaelementrenderer back

* support for polling the position property. Added timer to demopage to poll for position.

* Fixed scaling issue on iOS and background color

* Renderer code review issues

* Implementing MediaSource (ImageSource pattern) to replace Uris. Other code cleaning fixes.

* Hooked up MediaSource and kept uri custom schema logic

* Moved all the "callback" methods to the IMediaElementController interface so they are not publicly exposed on the MediaElement. Removed HttpHeaders and associated code for v1 release. Other code tidying.

* Code review feedback

* Integrated unit tests. Added support for inherited binding on MediaSource.

* Additional Windows file path test. Fix for UWP renderer to check if Control is released

* Fix for FormsVideoView metadata causing aspect issues. Simplified Android FastRenderer to correctly handle VideoView lifetime.

* fixed merge error

* fixed merge errors

* MediaElement and iOS/Android/UWP renderers.

* Added basic WPF renderer. Fixed sizing issue on UWP renderer. Added sample page to ControlGallery app

* MediaEnded event on UWP. Source Uri convert ms-appx to pack:// uri scheme on WPF

* code style fixes

* resolving conflicts

* Following discussion on PR made NaturalDuration a nullable TimeSpan so that can determine when value is not present.
Added CanSeek property to indicate when Position property can be set.
Added support for KeepScreenOn to WPF renderer.
Improved ControlGallery page with separate Play/Pause/Stop buttons and label to display current state

* coding style fixes

* coding style fixes 2

* Improved media controls on demo page. Renderer enhancements for Android and iOS

* Improved logic around media metadata in iOS renderer.
Switched to https video uri to allow playback in iOS. Increased media control button sizes

* Improved parsing of ms-appdata uris supporting both the local and temp folders

* Removed redundant Debug.WriteLines. Removed XML docs from MediaElement and MediaElementState types.

* Bug fix for iOS MediaElement.Source Uri escape handling

* Adding MediaElement fast renderer for Android

* Rearchitecting the Element/Renderer connectivity. New WPF,UAP and Android FastRenderer complete. Still requires Android classic renderer and iOS renderer...

* More MediaElement renderer development. Converted iOS to a FastRenderer

* Latest android renderer

* Android renderer fix for StopPlayback reusability. MetadataRetreiver now loaded async.

* Added an IMediaElementController property to Android renderers to simplify code.

* Simplified Aspect property

* Changed AreTransportControlsEnabled to ShowsPlaybackControls. Removed commented-out code.

* merging

* support for polling the position property. Added timer to demopage to poll for position.

* Fixed scaling issue on iOS and background color

* Renderer code review issues

* Implementing MediaSource (ImageSource pattern) to replace Uris. Other code cleaning fixes.

* Hooked up MediaSource and kept uri custom schema logic

* Moved all the "callback" methods to the IMediaElementController interface so they are not publicly exposed on the MediaElement. Removed HttpHeaders and associated code for v1 release. Other code tidying.

* Code review feedback

* Integrated unit tests. Added support for inherited binding on MediaSource.

* Additional Windows file path test. Fix for UWP renderer to check if Control is released

* Fix for FormsVideoView metadata causing aspect issues. Simplified Android FastRenderer to correctly handle VideoView lifetime.

* fixed merge error

* manual merge fixes

* Fixed missing FileMediaSourceConverter

* Fixed merge issue with iOS project file

* Clarification to WPF Source Uri exception message

* Changed iOS local path to the Library path as this is not user visible or synchronised with iCloud. Fix for breaking change in WeakEventManager

* Added Volume property

* Fixes for code-review feedback

* Optimised iOS renderer to remove a view layer

* fixes to resolve possible rotation bug

* Moved ms-appdata parsing to shared location.

* fixed codesign error

* Fix for issue on Android where control may show black screen prior to video playing - now respects backgroundcolor property

* Renamed conflicting extensions class

* Add experimental flag; remove slow renderer

* Update MediaElementDemoPage.cs

* Update MediaElementRenderer.cs

* Update MediaElementRenderer.cs

* Porting latest renderer updates. iOS re-written as a non-fast renderer to workaround issue with dispose when using on modal pages.

* Fixed protected member in sealed class issue

Co-authored-by: Rui Marinho <me@ruimarinho.net>
Co-authored-by: Samantha Houts <samhouts@users.noreply.github.com>
fixes #1692

Co-authored-by: Peter Foot <peter@inthehand.com>
2020-02-05 16:40:47 -07:00
..
Properties [All] Move to netstandard2.0 **Breaking change** (#1306) 2017-11-29 17:37:06 +00:00
Xamarin.Forms.Platform.cs [Android,iOS,UWP,WPF] MediaElement control (#3482) (#9439) 2020-02-05 16:40:47 -07:00
Xamarin.Forms.Platform.csproj Re-enable "Treat warnings as errors" (#5602) 2019-03-27 18:38:38 +00:00