private void UpdateSource() { if (Element.Source != null) { if (Element.Source.Scheme == "ms-appx") { // video resources should be in the raw folder with Build Action set to AndroidResource string uri = "android.resource://" + Context.PackageName + "/raw/" + Element.Source.LocalPath.Substring(1, Element.Source.LocalPath.LastIndexOf('.') - 1).ToLower(); _view.SetVideoURI(global::Android.Net.Uri.Parse(uri)); } else if (Element.Source.Scheme == "ms-appdata") { _view.SetVideoPath(System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), Element.Source.LocalPath.Substring(1))); } else { if (Element.Source.IsFile) { _view.SetVideoPath(Element.Source.AbsolutePath); } else { _view.SetVideoURI(global::Android.Net.Uri.Parse(Element.Source.ToString()), Element.HttpHeaders); } } if (Element.AutoPlay) { _view.Start(); } } }
private void UpdateSource() { if (Element.Source != null) { if (Element.Source.Scheme == null) { _view.SetVideoPath(Element.Source.AbsolutePath); } else if (Element.Source.Scheme == "ms-appx") { // video resources should be in the raw folder with Build Action set to AndroidResource string uri = "android.resource://" + Context.PackageName + "/raw/" + Element.Source.LocalPath.Substring(1, Element.Source.LocalPath.LastIndexOf('.') - 1).ToLower(); _view.SetVideoURI(global::Android.Net.Uri.Parse(uri)); } else if (Element.Source.Scheme == "ms-appdata") { string filePath = string.Empty; if (Element.Source.LocalPath.StartsWith("/local")) { filePath = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), Element.Source.LocalPath.Substring(7)); } else if (Element.Source.LocalPath.StartsWith("/temp")) { filePath = System.IO.Path.Combine(System.IO.Path.GetTempPath(), Element.Source.LocalPath.Substring(6)); } _view.SetVideoPath(filePath); } else { if (Element.Source.IsFile) { _view.SetVideoPath(Element.Source.AbsolutePath); } else { _view.SetVideoURI(global::Android.Net.Uri.Parse(Element.Source.ToString()), Element.HttpHeaders); } } if (Element.AutoPlay) { _view.Start(); Element.CurrentState = MediaElementState.Playing; } } else { if (Element.CurrentState == MediaElementState.Playing || Element.CurrentState == MediaElementState.Buffering) { Element.Stop(); } } }