示例#1
0
        void GetMetaData(global::Android.Net.Uri uri, IDictionary <string, string> headers)
        {
            Task.Run(() =>
            {
                var retriever = new MediaMetadataRetriever();

                if (uri.Scheme != null && uri.Scheme.StartsWith("http") && headers != null)
                {
                    try
                    {
                        retriever.SetDataSource(uri.ToString(), headers);
                    }
                    catch (Exception ex)
                    {
                        System.Diagnostics.Debug.WriteLine(ex);
                    }
                }
                else
                {
                    retriever.SetDataSource(Context, uri);
                }

                ExtractMetadata(retriever);

                MetadataRetrieved?.Invoke(this, EventArgs.Empty);
            });
        }
示例#2
0
        public override void SetVideoPath(string path)
        {
            base.SetVideoPath(path);

            if (System.IO.File.Exists(path))
            {
                var retriever = new MediaMetadataRetriever();

                Task.Run(() =>
                {
                    retriever.SetDataSource(path);
                    ExtractMetadata(retriever);
                    MetadataRetrieved?.Invoke(this, EventArgs.Empty);
                });
            }
        }
示例#3
0
        protected async Task SetMetadata(global::Android.Net.Uri uri, IDictionary <string, string>?headers)
        {
            var retriever = new MediaMetadataRetriever();

            if (uri.Scheme != null && uri.Scheme.StartsWith(Uri.UriSchemeHttp, StringComparison.OrdinalIgnoreCase))
            {
                await retriever.SetDataSourceAsync(uri.ToString(), headers ?? new Dictionary <string, string>());
            }
            else
            {
                await retriever.SetDataSourceAsync(Context, uri);
            }

            ExtractMetadata(retriever);

            MetadataRetrieved?.Invoke(this, EventArgs.Empty);
        }
示例#4
0
        protected void GetMetaData(global::Android.Net.Uri uri, IDictionary <string, string> headers)
        {
            Task.Run(() =>
            {
                var retriever = new MediaMetadataRetriever();

                if (uri.Scheme != null && uri.Scheme.StartsWith("http"))
                {
                    retriever.SetDataSource(uri.ToString(), headers ?? new Dictionary <string, string>());
                }
                else
                {
                    retriever.SetDataSource(Context, uri);
                }

                ExtractMetadata(retriever);

                MetadataRetrieved?.Invoke(this, EventArgs.Empty);
            });
        }