2017-09-06 114 views
0

我在Samsung android设备上生成了mp3音频文件。我从服务器下载这个相同的文件并存储在文档目录中。现在我使用下面的代码来播放这个音频文件。 iAudioFileURL是一个我用来外部设置音频文件url的属性。当URL设置我设置了AVAudioPlayer该URL使用以下无法使用AVAudioPlayer播放保存在文档目录中的本地mp3文件

var iAudioFileURL : URL?{ 
    didSet{ 
     if let audioFileURL = iAudioFileURL { 
      if audioFileURL.isFileURL { 
       if let previousURL = iAVAudioPlayer?.url { 
        if previousURL.path == audioFileURL.path { 
         return 
        } 
       } 

       self.stopPlayer() 
       self.iToolBar.items?[0] = iPlayButton 

       do { 
        try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, with: [AVAudioSessionCategoryOptions.mixWithOthers, AVAudioSessionCategoryOptions.duckOthers]) 
        try AVAudioSession.sharedInstance().setActive(true) 
        try iAVAudioPlayer = AVAudioPlayer(contentsOf: audioFileURL) 
       } catch let error as NSError { 
        iError = error 
        return 
       } 
       iError = nil 
       iAVAudioPlayer?.prepareToPlay() 
       self.iProgressSlider.minimumValue = 0 
       if let duration = self.iAVAudioPlayer?.duration { 
        let durationNumber = NSNumber(floatLiteral: duration) 
        self.iProgressSlider.maximumValue = durationNumber.floatValue 
       } 
      } else { 
       print("Path:\(iAudioFileURL?.path) is not a file url") 
      } 

     } 
    } 
} 

的代码工作正常,其他文件的代码,而是从该设备产生的所有MP3文件无法播放。 我有一个按钮,它会触发播放方法AVAudioPlayer实例。 我已经提到了大多数从stackoverflow的问题和答案。他们不为我提供解决方案。即使这些方法不会抛出错误。请帮助我。你可以找到文件here

+0

你是如何生成的MP3文件的MIME类型? –

+0

@SaurabhJain我正在录制文件 –

+0

如何以mp3格式保存文件?可能它没有保存在MP3格式 –

回答

0

问题是,即使扩展名是mp3,文件的MIME类型是audio/x-hx-aac-adts。在此线程[https://discussions.apple.com/thread/2365009?tstart=0][1] varjak爪子回复

的iTunes,到我所知,不支持AAC ADTS中 (音频数据传输流),只能在MPEG-4 AAC。您需要找到 转换器,以便iTunes能够在 之前将这些文件转换为MPEG-4格式。对不起,我不能提供任何关于转换器 尝试的建议。

问候。

因此,这表明不支持mimetype audio/x-hx-aac-adts的文件。 您可以在Mac上打开终端并使用下面的命令来获取文件

文件--mime型-b myfile.extension