2015-06-16 6 views
7

Ich habe eine App, in der ich AVAudioEngine für die Wiedergabe von Dateien aus dem lokalen Dateisystem mit AVAudioPlayerNodes und AVAudioFiles verwenden. Das funktioniert ganz gut.Daten aus dem Netzwerk in AVAudioEngine streamen, ist das möglich?

Jetzt möchte ich mein Setup aktivieren, um auch Streaming von MP3-Dateien von einem Server im Internet zu unterstützen.

Was ich versucht habe bisher

Meine Hoffnung war, dass ich eine Art Puffer von NSURL Objekte erstellen können Netzwerkadressen zeigt, die ich dann mit meinem AVAudioPlayerNode benutzen konnten.

Ich habe gesucht Stack Overflow und die internet im Allgemeinen, aber habe keine gute Tipps, wie dies zu erreichen.

Ich weiß, dass die AVAudioEngine Lineup besteht aus:

  • AVAudioPlayerNode, die von einem AVAudioFile oder einem AVAudioBuffer Audio abspielen kann. Ich verwende heute bereits AVAudioFile für meine "lokale Dateieinrichtung".
  • AVAudioFile, die für lokale Dateien verwendet werden soll. Ein ‚AVAudioFile‘ mit einem ‚NSURL‘ erstellt, also habe ich mit einer URL versucht, die in einem Spielplatz wie so auf einen Server zu einer MP3-Datei verweist:

    var fileError: NSError? = nil 
    let file = AVAudioFile(forReading: someURL, error: &fileError) 
    if fileError != nil { 
        fileError 
    } 
    

, die mich mit diesem Fehler belohnt :

Error Domain=com.apple.coreaudio.avfaudio Code=2003334207 "The operation couldn’t be completed. (com.apple.coreaudio.avfaudio error 2003334207.)" UserInfo=0x7fbfab424480 {failed call=ExtAudioFileOpenURL((CFURLRef)fileURL, &_extAudioFile)} 
  • AVAudioPCMBuffer, die die Klasse zu verwenden, ich hatte gehofft, aber ich kann es mit Daten keine Möglichkeit finden zu instanziiert.

Meine Frage (nur um deutlich zu machen :-))

Hat jemand von euch hell Leuten da draußen wissen, wie AVAudioEngine zu verwenden, um Dateien von einem Server im Internet MP3-Streaming?

Oder sollte ich einfach aufgeben und AVPlayer dafür verwenden?

Ich freue mich von Ihnen zu hören.

+1

* "Oder sollte ich einfach aufgeben und den AVPlayer dafür verwenden?" * Ja. –

+0

Danke @TomHarrington. Kurz und auf den Punkt :-) – pbodsk

Antwort

0

Apples Dokumentation legt nicht fest, ob es mit einem online gehosteten MP3 funktionieren kann, aber sobald ich versuche, eine AVAudioFile mit einer mp3-URL zu initialisieren, stürzt es sofort mit einer schwerwiegenden Ausnahme ab. Ich denke das beantwortet deine Frage.

+1

Es geht richtig. Nicht genau die Antwort, auf die ich gehofft hatte, aber danke für deine Zeit und antworte. – pbodsk

Verwandte Themen