我有一个包含媒体文件并像收音机一样工作的网络服务器。需要设计一个 iOS 客户端应用程序来播放这些文件。
问题是我只能以字节数组的形式提供内容,因为有时,网络服务器本身并不拥有媒体并在发送时下载它。我正在考虑每 x 个字节使用 Json 请求。
iOS 中是否有本地函数来处理来自字节数组的 MP3 流。我对 iOS 知之甚少,因此我想确保从字节数组流式传输 mp3 是可能的并且符合 Apple-Store 标准。
看看 matt Gallagher 的音频流媒体。这可能是一个好的开始。
http://cocoawithlove.com/2008/09/streaming-and-playing-live-mp3-stream.html?m=1
可以使用像代理这样的网络服务器来发送文件,这是我找到的方法,以便我的服务器以与从第 3 方服务器接收文件相同的速率发送文件。
Private Sub SendFile(ByVal url As String)
Dim stream As System.IO.Stream = Nothing
Dim bytesToRead As Integer = 10000
Dim buffer() As Byte = New Byte((bytesToRead) - 1) {}
Try
Dim fileReq As System.Net.WebRequest = CType(System.Net.HttpWebRequest.Create(url), System.Net.HttpWebRequest)
Dim fileResp As System.Net.HttpWebResponse = CType(fileReq.GetResponse, System.Net.HttpWebResponse)
If (fileReq.ContentLength > 0) Then
fileResp.ContentLength = fileReq.ContentLength
End If
stream = fileResp.GetResponseStream
Dim resp As System.Web.HttpResponse = HttpContext.Current.Response
resp.ContentType = "application/octet-stream"
resp.AddHeader("Content-Disposition", ("attachment; filename=\""" + ("mp3" + "\""")))
resp.AddHeader("Content-Length", fileResp.ContentLength.ToString)
Dim length As Integer = 1000000
While (length > 0)
If resp.IsClientConnected Then
length = stream.Read(buffer, 0, bytesToRead)
resp.OutputStream.Write(buffer, 0, length)
resp.Flush()
buffer = New Byte((bytesToRead) - 1) {}
Else
length = -1
End If
End While
Catch
stream.Close()
Finally
If (Not (stream) Is Nothing) Then
stream.Close()
End If
End Try
Response.End()
End Sub