iOSアプリのアセットカタログに保存されているmp3ファイルを再生しています&アプリ全体の有効範囲のプレーヤーを宣言すると、AVAudioPlayerが宣言されています。私のコードは正常に動作しますが、もしこれが貧弱な練習であるかどうかを知りたければ、&です。そうのようなオーディオを再生するほとんどのコード例では、オプションとしてAVPlayerを宣言したが、宣言でプレーヤーを作成しないでください:私はB/Cの下に実装AVAudioPlayer()を変数宣言で作成し、オプション/アンラッピングを避けることはできますか?
var audioPlayer: AVAudioPlayer?
がoptionalsへの参照を持っているか、強制アンラップしない(I私はスウィフトでちょうど盛り上がっていますが、私はこれを初期の "Get Excited"の例として使っていますので、最初のアプリでメディアを再生することができます。
// AVAudioPlayerを宣言し、空のプレイヤーを割り当てる
var audioPlayer = AVAudioPlayer()
//おかげ//
func playSound() {
if let sound = NSDataAsset(name: "sound0") {
do {
try audioPlayer = AVAudioPlayer(data: sound.data)
audioPlayer.play()
} catch {
print("ERROR: Couldn't create the AVAudioPlayer")
}
} else {
print("ERROR: Couldn't load sound file from asset catalog. Verify file is a valid sound file and that the name is correct.")
}
}
"sound0" という名前のアセットファイルにmp3の音を再生するには、この関数を呼び出します!
暗黙のオプションの詳細については、次の記事をご覧ください:http://stackoverflow.com/questions/24006975/why-create-implicitly-unwrapped-optionals –
ありがとうございます。これはすべて非常に役に立ちます。そして、アプローチがOKであることを確認してくれてありがとう! – Gallaugher