2017-02-01 1 views
2

그래서 내가 AVAudioPlayer 때로는 잘 작동하지만 때로는 "오류 도메인 = NSOSStatusErrorDomain 코드 = 1954115647"(null) ""오류를 인쇄합니다.오류 도메인 NSOSStatusErrorDomain 코드 = 1954115647 "(null)"

let songData = try NSData(contentsOfURL: songURL!, options: NSDataReadingOptions.mappedIfSafe) 
    try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback) 
    try AVAudioSession.sharedInstance().setActive(true) 
    player = try AVAudioPlayer(data: songData!, fileTypeHint: AVFileTypeMpegLayer3) 
    player!.prepareToPlay() 
    player!.play() 
+0

info.plist에서 임의의로드를 허용합니까? 그것이 무엇인지 알지 못한다면 나에게 알려주고 답변으로 게시하십시오. – Timmy

+0

아니요. 그러나 모든 요청은 HTTPS에서 왔습니다. –

+0

이 오류는 매번 발생하지 않습니다. 단지 –

답변

0

이 할 일 문의 코드는 다음과 같이 확인 : 여기에 코드입니다 타락했다. 이 단계를 확인하려면, 당신은 당신의 오디오 파일 중 하나를 선택하고 엑스 코드 내부를 재생하려고 할 수 있습니다

enter image description here

당신이있는 경우, 대신에이 사진, 이미지와 같은 미디어 플레이어의 총 부재 :

enter image description here

아마 당신은 당신의 오디오 파일을 수정해야합니다. 나는 그것을 확인한 결과, GIT (다른 시스템에서 병합, 병합) 또는 다른 시스템에 파일의 복사본을 만들 때와 같은 버전 관리 작업 시스템을 사용하는 경우 가끔씩 발생하는 것을 보았습니다. BUT 하이 시에라는 Sierra 대신 FINDER 미리보기에서 FLAC의 오디오를 재생할 수 있으므로 단순히 현재 OS와 관련이있을 수 있습니다.

해결책 : 원래 오디오 파일/파일 버전을 제거하고 복원하십시오. Sierra를 실행하는 시뮬레이터에서이 코드를 사용하려고해도 계속해서이 문제가 발생할 수 있으므로 High Sierra로 시도하고 발생한 문제를 확인하십시오.

+0

해결되지 않은 식별자 'NSDataReadingMappedIfSafe'사용 –

+0

내 컴퓨터가 아니기 때문에 미안합니다. 이전 버전인지 알 수 없었습니다. 하나 또는 그 이상. 업데이트되어 작동해야합니다. – Timmy

+0

코드를 수정 한 후 일부 구문이 올바르지 않아 때때로 오류가 발생합니다. –

0

당신이 일반적으로 오디오 파일을 엑스 코드/OS에 의해 인식되지 않는 오류 코드의 종류가있을 때 또는 :

override func viewDidLoad() { 
    super.viewDidLoad() 
    downloadFileFromURL(url: URL(string: mainPreviewURL)!) 
} 

func downloadFileFromURL(url: URL) { 
    var downloadTask = URLSessionDownloadTask() 
    downloadTask = URLSession.shared.downloadTask(with: url, completionHandler: { 
     customURL, response, error in 

     self.play(url: customURL!) 
    }) 
    downloadTask.resume() 
} 

func play(url: URL) { 
    do { 
     player = try AVAudioPlayer(contentsOf: url) 
     try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback) 
     player!.prepareToPlay() 
     player!.play() 
    } catch { 
     print(error) 
    } 
} 
+0

문제는 파일이 서버에서 다운로드되고 동일한 파일이 가끔 작동하지 않는다는 것입니다. –

+0

어디서이 응용 프로그램을 사용해보십시오? 시뮬레이터에 출시했거나 실제 장치에 대해 말한 적이 있습니까? –

+0

실제 장치에 있습니다. –

관련 문제