从VB.NET中的URL保存MP3文件 [英] Save MP3 file from URL in VB.NET
问题描述
我试图从我的服务器下载一个.mp3文件,并将其保存在本地的VB.NET中。但是,当我这样做时,保存的文件已损坏,因为内容包含下面的多行内容,其中包含大量随机/奇怪的字符(我假设的是音频文件)。
I'm attempting to download an .mp3 file from my server, and save it locally, in VB.NET. However, when I do so, the saved file is corrupt, as the contents contain multiple lines of things like below, with a ton of random/weird characters below them (I'm assuming the building blocks of the audio file).
这是我看到的: http://i.troll.ws/11d37d00.png
date = "20130811_18:22:58.466";
host = "DC3APS421";
kbps = "48";
khz = "22050";
当我尝试在WMP中播放.mp3文件时,它也表示已损坏。这是我用来下载和保存的代码。
When I attempt to play the .mp3 file in WMP, it also says it's corrupt. This is the code I'm using to download and save it.
' Download the MP3 file contents
Dim request As WebRequest = WebRequest.Create("http://www.mysite.org/secure/speech/?text=Test.")
request.Credentials = CredentialCache.DefaultCredentials
Dim response As WebResponse = request.GetResponse()
Console.WriteLine(CType(response, HttpWebResponse).StatusDescription)
Dim dataStream As Stream = response.GetResponseStream()
Dim reader As New StreamReader(dataStream)
Dim responseFromServer As String = reader.ReadToEnd()
reader.Close()
response.Close()
Debug.Print("Downloaded. Saving to local Audio Cache...")
' Check and create the audio-cache directory
If (Not System.IO.Directory.Exists(WorkingDir + "\audio-cache\")) Then
Debug.Print("Audio cache directory doesn't exist. Creating... ")
System.IO.Directory.CreateDirectory(WorkingDir + "\audio-cache\")
Debug.Print("Created at " + WorkingDir + "\audio-cache\")
End If
Dim Data As String = responseFromServer
' Save the mp3 file!
Dim fileLoc As String = WorkingDir + "\audio-cache\" + Mp3Hash + ".mp3"
Dim fs As FileStream = Nothing
If (Not File.Exists(fileLoc)) Then
fs = File.Create(fileLoc)
Using fs
End Using
End If
If File.Exists(fileLoc) Then
Using sw As StreamWriter = New StreamWriter(fileLoc)
sw.Write(Data)
End Using
End If
Debug.Print("Saved successfully to " + fileLoc)
如何正确下载并本地保存mp3文件从一个URL?
How can I properly download, and locally save, an mp3 file from a URL?
推荐答案
尝试这个
Dim HttpReq As HttpWebRequest = DirectCast(WebRequest.Create("http://...."), HttpWebRequest)
Using HttpResponse As HttpWebResponse = DirectCast(HttpReq.GetResponse(), HttpWebResponse)
Using Reader As New BinaryReader(HttpResponse.GetResponseStream())
Dim RdByte As Byte() = Reader.ReadBytes(1 * 1024 * 1024 * 10)
Using FStream As New FileStream("FileName.extension", FileMode.Create)
FStream.Write(RdByte, 0, RdByte.Length)
End Using
End Using
End Using
这篇关于从VB.NET中的URL保存MP3文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!