我有一個包含媒體文件並像收音機一樣工作的網絡服務器。 iOS客戶端應用程序需要設計爲播放這些文件。從字節數組中流式傳輸MP3
問題是我只能提供字節數組的內容,因爲有時候,web服務器本身並不擁有媒體,並在它發送時下載它。我正在考慮每x字節使用Json請求。
在iOS中是否有本地函數來處理來自字節數組的MP3流。我對iOS的知識知之甚少,所以我想確保它可以和Apple-Store兼容,以便從一個字節數組中流式傳輸MP3。
我有一個包含媒體文件並像收音機一樣工作的網絡服務器。 iOS客戶端應用程序需要設計爲播放這些文件。從字節數組中流式傳輸MP3
問題是我只能提供字節數組的內容,因爲有時候,web服務器本身並不擁有媒體,並在它發送時下載它。我正在考慮每x字節使用Json請求。
在iOS中是否有本地函數來處理來自字節數組的MP3流。我對iOS的知識知之甚少,所以我想確保它可以和Apple-Store兼容,以便從一個字節數組中流式傳輸MP3。
它可以使用一個Web服務器像代理髮送一個文件,這裏是我發現,使我的服務器以相同的速率發送文件,它從第三方服務器接收文件的方法。
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
看看matt matt gallagher的音頻流。這可能是一個好的開始。
http://cocoawithlove.com/2008/09/streaming-and-playing-live-mp3-stream.html?m=1
謝謝。我已經閱讀http://cocoawithlove.com/2009/06/revisiting-old-post-streaming-and.html,但看到它明確指出,此解決方法不處理未定義大小的文件。這不完全是我所說的「從字節數組流式傳輸」。不幸的是,我已經投降了,只會提供完整的mp3文件,重定向到第三方服務器上的文件,並在我的服務器不擁有它時同時下載它。 –