ios - 我如何播放 [UInt8] 音频流?

标签 ios objective-c iphone swift core-audio

<分区>

我通过 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)
    }
}

我的崩溃:

fatal error :在展开可选值时意外发现 nil

关于这个 self.audioPlayer!.prepareToPlay() Print screen my crash

最佳答案

  1. 根据流中的字节创建一个 NSData 对象。
  2. 使用 initWithData:error: 方法创建一个 AVAudioPlayer
  3. 使用 AVAudioPlayer 播放方法播放音频。

我无法确切地告诉您如何创建 NSData 对象,因为我不知道您是如何获得字节流的,但是 NSData 类在Apple 文档。

关于ios - 我如何播放 [UInt8] 音频流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31814145/

相关文章:

ios - 使用父 View 管理另一个 UIView 导出

objective-c - 淡出 NSScrollView 的顶部和底部

iphone - 按下 UIBarButton 时 UIAction 表不会消失

iphone - 如何在 iPhone 应用程序中垂直居中显示 UITextField 中的文本

ios - Cocos2d 中的 CCAnimation 和移动 Sprite 是否正确使用 physicsBody?

ios - 如何在运行时增加堆栈 View 的特定 subview 的高度?

ios - 删除 NSString 中的多个空格

iphone - Objective C 中两种迭代方式的区别?

iphone - 在 PhoneGap IOS 上缓存图像的最佳方式

ios - UIApplicationExitsOnSuspend 是否有 iOS 8 的等效项?