2015-08-04 2 views
2

Я подключен к серверу через TCP/IP и получает [UInt8]. Я знаю, что это аудио. Как играть в поток на iPhone?Как я могу воспроизвести аудиопоток [UInt8]?

@IBAction func connectAndListen(sender: AnyObject) { 
    var client:TCPClient = TCPClient(addr: "80.233.248.96", port: 6969) 
    var (success,errmsg)=client.connect(timeout: 1) 
    if success{ 
     while (success){ 
      var (success,errmsg)=client.send(str:"GET/HTTP/1.0\n\n") 
      if success{ 
       var data = client.read(1024*10) 
       if let d = data{ 

        var endMarker = NSMutableData(bytes: d, length: d.count) 
        println(endMarker) 
        self.audioPlayer = AVAudioPlayer(data: endMarker, error: nil) 

        self.audioPlayer?.prepareToPlay() 
        self.audioPlayer?.play() 

       } 
      }else{ 
       println(errmsg) 
       break 
      } 
     } 
    }else{ 
     println(errmsg) 
    } 
} 

мое Крушение:

фатальной ошибки: неожиданно обнаружил ноль, а разворачивание необязательного значения

на этом self.audioPlayer .prepareToPlay() Print screen my crash

+0

Необходимо сообщить подробности об аварии. Какая строка и каково полное сообщение об ошибке? – rmaddy

+0

@rmaddy мой сбой в player.prepareToPlay() и в консольном журнале: (фатальная ошибка: неожиданно найдена нуль при развертывании необязательного значения) –

+0

Почему вы удалили весь свой код из вопроса? Вы должны вернуть код и добавить сведения о сбое. Тогда ваш вопрос может возобновиться. – rmaddy

ответ

1
  1. Создать NSData объект из байтов в вашем потоке.
  2. Создайте AVAudioPlayer с использованием метода initWithData:error:.
  3. Воспроизведение звука с использованием метода воспроизведения AVAudioPlayer.

Я не могу сказать вам точно, как создать NSData объект, потому что я не знаю, как вы получите ваш поток байтов, но NSData класс хорошо документирован в документации Apple.

+0

@ michael-l добавьте больше деталей в мой вопрос. –