如何在swift中将base64转换为NSDATA

时间:2016-08-29 12:17:12

标签: ios swift base64 avfoundation

我正在开发一个iOS项目。它以base64字符串的形式将音频存储在Web服务器上。当我请求服务器为所有音频获取base64字符串并尝试在NSData中转换它时,我得到nil

do
{
   var audioData: NSData! = NSData(base64EncodedString: audioBase64String, options: NSDataBase64DecodingOptions(rawValue:0))
   if audioData != nil
   {
      let sound = try AVAudioPlayer(data: audioData)
      sound.play()
   }
   else
   {
        print("Data Not Exist")
   }
}
catch
{
}

在Android上相同的base64字符串被转换为字节数组并正在播放,但在iOS audioBase64String中返回nil NSData

3 个答案:

答案 0 :(得分:6)

这有效:

Swift 3和4:

var audioData = Data(base64Encoded: recording_base64, options: .ignoreUnknownCharacters)

Swift 2:

var audioData = NSData(base64EncodedString: recording_base64, options: NSDataBase64DecodingOptions.IgnoreUnknownCharacters)

答案 1 :(得分:3)

对于Swift 3:

var audioData = Data(base64Encoded: recording_base64, options: .ignoreUnknownCharacters)

答案 2 :(得分:-2)

试试this library。您可以从base64字符串获取NSData,然后使用此数据初始化您的AVAudioPlayer。请阅读AVAudioPlayer Apple的文档。