2015-03-21 2 views
8

У меня есть это сообщение, когда я пытаюсь играть аудио с различным шагом: enter image description hereисключения com.apple.coreaudio.avfaudio Причина: ошибка -50

И я гугл за эту ошибку с не получатся. Если я установил контрольные точки, он останавливается здесь: enter image description here

Я тестирую печать всех объектов, чтобы увидеть что-нибудь, но я ничего не нашел. Самое неприятное в том, что это происходит только в моем iphone6 ​​+, в других телефонах, которые я тестировал, это не сломается. Тогда искали проект, где я смотрел на это, чтобы добавить звуковые эффекты, это: https://github.com/atikur/Pitch-Perfect И если вы запустите его это работает, пока вы не измените ...

AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayAndRecord, error: &error) 

To:

AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, error: &error) 

А затем стрела (ТОЛЬКО В РЕАЛЬНОМ УСТРОЙСТВЕ, ПРИСПОСОБЛЕННОЙ К XCODE, она работает в симуляторе):

2015-03-21 11: 56: 13.311 Pitch Perfect [1237: 607678] 11: 56: 13.311 ОШИБКА: [0x10320c000] AVAudioFile.mm:496: - [AVAudioFile readIntoBuffer: fr ameCount: error:]: error -50 2015-03-21 11: 56: 13.313 Pitch Perfect [1237: 607678] * Завершение приложения из-за неперехваченного исключения 'com.apple.coreaudio.avfaudio', причина: 'ошибка - 50' * Первый стек бросить вызов: (0x18687a530 0x1978040e4 0x18687a3f0 0x1851ea6c0 0x185232d38 0x1852130f8 0x185212ccc 0x100584fd4 0x100584f94 0x10058fdb8 0x1005882c4 0x1005925d4 0x100592208 0x198037dc8 0x198037d24 0x198034ef8) LibC++ abi.dylib: оканчивающиеся неперехваченного исключением типа NSException

а также действительно действительно странно, что это скриншот, по какой-то причине после печати audioEngine, audioEngine.outputNode получает нуль?

+1

Я получаю ту же ошибку. В терминале, если вы наберете 'macerror -50', он отвечает:' Mac OS error -50 (paramErr): ошибка в списке параметров пользователя'. Я еще не получил. –

+0

это аудиопрограммирование в iOS отстой! – Josh

ответ

0

У меня была такая же ошибка ... Я создал класс «sound.swift», который создавал бы контроллер моего представления ... Я решил упростить все и сосредоточиться на создании звука. Таким образом, я поставил следующий код в контроллере представления, и он работает:

// извлечение Записанный файл

var pitchPlayer = AVAudioPlayerNode() 
var timePitch = AVAudioUnitTimePitch() 
let dirPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory,.UserDomainMask,true)[0] as! String 

var pathArray = [dirPath, String("son.wav")] 

filePath = NSURL.fileURLWithPathComponents(pathArray) 

audioFile = AVAudioFile(forReading: filePath.filePathURL, error: nil) 

audioEngine = AVAudioEngine() 

audioEngine.attachNode(pitchPlayer) 
audioEngine.attachNode(timePitch) 


//Create a session 
var session=AVAudioSession.sharedInstance() 
session.setCategory(AVAudioSessionCategoryPlayAndRecord,error:nil) 

//output audio 
session.overrideOutputAudioPort(AVAudioSessionPortOverride.Speaker, error: nil) 

audioEngine.connect(pitchPlayer, to: timePitch, format: audioFile.processingFormat) 
audioEngine.connect(timePitch, to: audioEngine.outputNode, format: audioFile.processingFormat) 

pitchPlayer.scheduleFile(audioFile, atTime: nil, completionHandler: nil) 
audioEngine.startAndReturnError(&audioError) 

pitchPlayer.play()