Mam aplikację, w której używam AVAudioEngine
do odtwarzania plików z lokalnego systemu plików przy użyciu AVAudioPlayerNodes
i AVAudioFiles
. Działa to doskonale.Dane strumieniowe z sieci w AVAudioEngine, czy to możliwe?
Teraz chciałbym, aby moja konfiguracja obsługiwała strumieniowanie plików MP3 z serwera w Internecie.
Co Próbowałem tak daleko
Mam nadzieję, że mogę tworzyć jakieś bufory z NSURL
przedmiotów wskazujących na adresy sieciowe, które mogłyby I następnie używać z moim AVAudioPlayerNode
.
Szukałem Stack Overflow i internet w ogóle, ale nie znalazłem żadnych dobrych wskazówek, jak to osiągnąć.
wiem, że AVAudioEngine
skład wchodzą:
- AVAudioPlayerNode, który może odtwarzać dźwięk z
AVAudioFile
lubAVAudioBuffer
. Już teraz używamAVAudioFile
do mojej "lokalnej konfiguracji plików". AVAudioFile, który ma być używany do plików lokalnych. Za „AVAudioFile” tworzony jest z „bibliotece NSURL” tak próbowałem z adresu URL, który wskazuje na plik MP3 na serwerze tak jak na placu zabaw:
var fileError: NSError? = nil let file = AVAudioFile(forReading: someURL, error: &fileError) if fileError != nil { fileError }
który nagradza mnie z tego błędu :
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, który jest klasą miałem nadzieję w użyciu, ale nie mogę znaleźć żadnego sposobu na instancję z danymi.
Moje pytanie (tak, aby było jasne :-))
Czy ktoś z was jasne ludzie tam wiedzą, jak korzystać AVAudioEngine
do strumieniowego przesyłania plików MP3 z serwera w Internecie?
Czy powinienem po prostu zrezygnować i użyć do tego AVPlayer
?
Czekamy na wiadomość od Ciebie.
* "Czy powinienem po prostu zrezygnować i użyć AVPlayer do tego?" * Tak. –
Dzięki @TomHarrington. Krótkie i na temat :-) – pbodsk