2016-12-10 15 views
1

私のアプリでサウンドを再生するのが好きです。私は多くの例を見つけ、Swift 3でコンパイルして実行することもできました。しかし、それらは常にiOS向けです。私のアプリでこのコードを実装するとき、AVAudioSessionは未定義のままです。私は何をしなければならないのですか? OSXのために何か別のものがありますか?OSXでサウンドを再生

import AVFoundation 
... 
    var audioPlayer = AVAudioPlayer() 
    func PlaySound() { 
     let alertSound = URL(fileURLWithPath: Bundle.main.path(forResource: "Sound", ofType: "mp3")!) 
     do { 
      try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback) 
     } catch _ { 
     } 
     do { 
      try AVAudioSession.sharedInstance().setActive(true) 
     } catch _ { 
     } 
     do { 
      audioPlayer = try AVAudioPlayer(contentsOf: alertSound) 
     } catch _{ 
     } 
     audioPlayer.prepareToPlay() 
     audioPlayer.play() 
    } 

答えて

3

私は、以下の機能をSwift 3とCocoaプロジェクトと併用しました。

import AVFoundation 

func playSound(file:String, ext:String) -> Void { 
    let url = Bundle.main.url(forResource: file, withExtension: ext)! 
    do { 
     player = try AVAudioPlayer(contentsOf: url) 
     guard let player = player else { return } 

     player.prepareToPlay() 
     player.play() 
    } catch let error { 
     print(error.localizedDescription) 
    } 
} 

//使い方//

playSound(file: "sound", ext: "caf") // where the file name is sound.caf. 

は、ターゲット・メンバーシップのチェックボックスを使って、Xcodeプロジェクト内のオーディオファイルを選択したときに上にあることを確認してください。

+0

素晴らしいです。それは即座に機能しました!どうもありがとう! –

+3

未解決の識別子 'player'の使用 –

+0

@David Jones最初の行をよく見てください。 –

0

スウィフト3 - 最も簡単な解決策:

NSSound(named: "customSound")?.play() 
+0

このトピックはNSSoundとは関係ありません。 –

+0

@ElTomatoではありませんか? 'NSSoundクラスは、オーディオファイルの読み込みと再生のための簡単なインターフェイスを提供します.' https://developer.apple.com/reference/appkit/nssound – ixany

+0

元のトピックを読む。このトピックを投稿した人は、NSSoundではなくAVAudioSessionを参照しています。 –

関連する問題