我如何播放 [UInt8] 音频流?
How i can play [UInt8] audio stream?
我通过 TCP / IP 连接到服务器并接收 [UInt8]。我知道那是音频。如何在 iPhone?
上播放流
@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)
}
}
我的崩溃:
致命错误:在展开可选值时意外发现 nil
在此 self.audioPlayer!.prepareToPlay() Print screen my crash
- 从流中的字节创建一个
NSData
对象。
- 使用
initWithData:error:
方法创建一个 AVAudioPlayer
。
- 使用
AVAudioPlayer
播放方法播放音频。
我无法确切地告诉您如何创建 NSData
对象,因为我不知道您是如何获得字节流的,但是 NSData
class 在Apple 文档。
我通过 TCP / IP 连接到服务器并接收 [UInt8]。我知道那是音频。如何在 iPhone?
上播放流@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)
}
}
我的崩溃:
致命错误:在展开可选值时意外发现 nil
在此 self.audioPlayer!.prepareToPlay() Print screen my crash
- 从流中的字节创建一个
NSData
对象。 - 使用
initWithData:error:
方法创建一个AVAudioPlayer
。 - 使用
AVAudioPlayer
播放方法播放音频。
我无法确切地告诉您如何创建 NSData
对象,因为我不知道您是如何获得字节流的,但是 NSData
class 在Apple 文档。