0

メディアファイルを含み、ラジオのように機能するWebサーバーがあります。iOSクライアントアプリケーションは、これらのファイルを再生するように設計する必要があります。

問題は、コンテンツをバイトの配列としてしか提供できないことです。これは、Webサーバー自体がまだメディアを所有しておらず、送信時にダウンロードするためです。xバイトごとにJsonリクエストを使用することを考えています。

バイトの配列からMP3ストリームを処理するiOSのネイティブ関数はありますか?私はiOSについてほとんど知識がないので、バイトの配列からmp3をストリーミングすることが可能でAppleStoreに準拠していることを確認したいと思います。

4

2 に答える 2

1

マットギャラガーのオーディオストリーマーをご覧ください。それは良いスタートかもしれません。

http://cocoawithlove.com/2008/09/streaming-and-playing-live-mp3-stream.html?m=1

于 2012-09-11T00:05:54.597 に答える
0

プロキシのような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
于 2012-09-14T16:18:45.860 に答える