2015-10-12 3 views
2

Почему Safari/Chrome не может воспроизводить файл, созданный с помощью AVAudioRecorder?Аудиофайлы iOS не воспроизводятся на рабочем столе веб-браузера

Вот мои настройки регистратора:

private static let settings = [ 
     AVFormatIDKey: NSNumber(unsignedInt: kAudioFormatMPEG4AAC), 
     AVNumberOfChannelsKey: 2, 
     AVSampleRateKey: 44100, 
     AVEncoderBitRateKey: 128000, 
     AVEncoderAudioQualityKey: NSNumber(long: AVAudioQuality.Max.rawValue) 
    ] 

и читатель:

<audio controls> 
    <source src="MD_31E5106A-2901-49ED-8492-D29A654B826D" type="audio/mp4"> 
</audio> 

Я попробовал несколько параметров, ни успеха. Все файлы можно воспроизводить с помощью VLC.

Вот пример файла: http://cl.ly/1l0z231x322l

Edit: код читателя

+0

вы проверили кодек видео ?? Упоминание кодека вашего видео –

+0

Значение ключа 'AVNumberOfChannelsKey' должно быть 1 вместо 2, поскольку вы записываете только одноканальный аудиофайл. Также сохраните файл с расширением '.aac'. –

+0

Я тоже пробовал с 1 каналом. – VinZen

ответ

0

UPDATE

Ваш файл является CAF/Core Audio Format, и AAC/кафе даже менее широкую поддержку, чем AAC/m4a (даже iTunes не играет в файлы caf).

Вы можете попробовать преобразовать его в .m4a и использовать контент-тип audio/mp4 или преобразовать его .aac и используя audio/aac.

or .mp3 audio/mpeg.

РАНЕЕ

AAC/m4a не очень широко поддерживаемый формат. Вам лучше использовать MP3.

+0

У меня есть музыка в AAC. Все работает в Chrome и Safari. Я сталкиваюсь с той же проблемой с mp3 – VinZen

+0

Какой тип контента вы использовали для MP3? Как насчет типа контента audio/m4a? Или используя необработанные AAC и аудио/aac? –

+0

Я использую kAudioFormatMPEGLayer3 и аудио/mp3. Я думаю, мы нашли решение – VinZen

0

Это работает, если мы имели расширение к URL

recordURL = recordURL.URLByAppendingPathExtension("m4a") 
recorder = try AVAudioRecorder(URL: recordURL, settings: AudioRecorder.settings) 
+0

Так это была проблема 404? –

+0

Нет, я не знаю, почему, но если мы сохраним запись в виде файла с расширением, веб-браузер сможет его воспроизвести. Даже если вы удалите расширение после сохранения записи. – VinZen

+0

Итак, урок: не сохранять запись без расширения своего файла – VinZen