2

我正在 Xamarin / C# 中为 Android 创建一个 Youtube 到 MP3 下载器。我正在使用 VideoLibrary 下载视频。我的代码:

                if (!string.IsNullOrEmpty(EditText.Text))
                {
                    byte[] bytes = null;
                    try
                    {
                        var v = YouTube.Default.GetVideo(EditText.Text);
                        bytes = await webClient.DownloadDataTaskAsync(v.Uri);
                    }
                    catch (TaskCanceledException)
                    {
                        Toast.MakeText(this, "Task Canceled", ToastLength.Long).Show();
                        return;
                    }
                    catch (Exception a)
                    {
                        Toast.MakeText(this, a.InnerException.Message, ToastLength.Long).Show();
                        Dialog.Progress = 0;
                        return;
                    }

                    var video = YouTube.Default.GetVideo(EditText.Text).Title;
                    var documentsPath = Android.OS.Environment.ExternalStorageDirectory + "/Download";
                    string localFilename = video

                                               .Replace('.', ' ')

                                               .Replace('-', ' ')

                                               .Replace('(', ' ')

                                               .Replace(')', ' ')

                                               .Replace('"', ' ')

                                               .Replace(',', ' ');
                    string localPath = System.IO.Path.Combine(documentsPath, localFilename);
                    Dialog.SetTitle("Download Complete");
                    FileStream fs = new FileStream(localPath + ".mp3", FileMode.OpenOrCreate);
                    fs.Write(bytes, 0, bytes.Length);
                    fs.Close(); 

所以这行得通,我可以将视频下载为 mp3 文件,但它也可以下载视频。当我然后单击 .mp3 文件时,它也会下载视频。问题在于,我无法将其添加到播放列表中,因为它是 mp3 格式的视频,而不是声音。

SO:我可以只获得 VideoLibrary 中的声音还是可以轻松地将这个视频文件转换为 mp3 文件?

谢谢你的帮助!!

注意:它必须在 Android (Xamarin) 上工作

4

1 回答 1

1

根据 VideoLibrary 的文档,您可以使用该库下载与您查看的文件扩展名相同的视频。VideoLibrary 中没有将视频格式更改为音频的已发布功能,您必须为此使用不同的库。

您试图通过简单地将扩展名更改为MP3而不是适当地使用FileExtension提供的属性来解决此问题。这就是您看到此问题的原因。

于 2020-01-10T21:15:47.953 回答