2016-03-31 3 views
2

Привет Я пытаюсь преобразовать следующий код Objective-C для Swift:Воспроизведение аудио файлов с помощью EZAudio Framework в Swift

EZAudioFile *audioFile = [EZAudioFile audioFileWithURL:NSURL]; //required type NSURL 
[self.player playAudioFile:audioFile]; 

Но я не могу заставить его работать.

let audioFile = EZAudioFile.url(EZAudioFile) //required type EZAudioFile, so I am unable to pass the NSURL of the audio file here. 
player.play() 

Ошибка: Cannot convert value of type 'NSURL' to expected argument type 'EZAudioFile'

Приведенный выше код Objective-C ссылается здесь: EZAudio Example:Record File

+1

Я не использовал 'EZAudioFile', но я получил' AVAudioPlayer', чтобы нормально работать в Swift. Вот какой код (прокрутите вниз в ответе) для справки. http://stackoverflow.com/a/32879428/3681880 – Suragch

+0

Я тоже это сделал быстро. Но причина, по которой я привязана к EZAudio, заключается в том, что я использую свои методы для создания осциллограмм во время записи. Я могу записывать, воспроизводить аудио с помощью AVAudioPlayer. Поэтому я подумал, что лучше изучить эту структуру (EZAudio), чтобы использовать все ее методы. –

+1

А, я вижу. Звучит интересно. Я задавался вопросом, как некоторые приложения создают формы волн. Надеюсь, вы заработаете. – Suragch

ответ

1

Я не проверял, так что я могу ошибаться, но я думаю, что вы не используя правильный синтаксис: EZAudioFile.url(EZAudioFile) не вызывает инициализатор, о котором вы думаете.

Я вижу in the EZAudioFile source, что есть на самом деле инициализатор для аудио URL файла:

+ (instancetype)audioFileWithURL:(NSURL *)url

Так что я думаю, что синтаксис в Swift должен скорее быть:

Кроме того, кажется, что это только оболочка для обычного URL init, который должен быть примерно таким:

let audioFile = EZAudioFile(URL: yourURL) 
+0

Пятно на! Автозаполнение Xcode поймало меня здесь. Какая будет замена '[self.player playAudioFile: audioFile];' в Swift? –

+0

Это должно быть [похоже] (https://github.com/syedhali/EZAudio/blob/master/EZAudio/EZAudioPlayer.m#L334): 'self.player.playAudioFile (audioFile)' Я полагаю (опять же, просто угадать, читая источник, так как у меня нет доступа к установке EZ прямо сейчас). – Moritz

+0

Очень сложное быстрое преобразование. Это получилось: 'player = EZAudioPlayer (EZAudioFile: audioFile)'. Спасибо за ваши полезные комментарии! –