2016-03-31 82 views
2

嗨,我想下面的Objective-C代碼轉換爲斯威夫特:播放使用EZAudio框架音頻文件斯威夫特

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

所以我的猜測是,在斯威夫特的語法而應是:

另外,它似乎只是一個普通的URL初始化包裝,應該是這樣的:

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)'。感謝您的有用評論! –