swift
1import AVFoundation 2 3class Sound { 4 5 var player: AVAudioPlayer! 6 var timeInterval:TimeInterval = 3 7 var currentTime:TimeInterval = 0.0 8 var initVolume:Float //初期ボリュームの値保持 9 10 /// イニシャライズ 11 /// 12 /// - Parameters: 13 /// - fileNamed: ファイル名 14 /// - volume: 音量 15 /// - numberOfLoops: -1 無限loop 自然数ならその数だけloop 16 init(fileNamed:String,volume:Float,numberOfLoops:Int){ 17 let fileNameStrings = fileNamed.components(separatedBy: ".") 18 let fileName = fileNameStrings[0] 19 let fileType = fileNameStrings[1] 20 let url = Bundle.main.url(forResource: fileName, withExtension: fileType) 21 if let url = url { 22 do { 23 player = try AVAudioPlayer(contentsOf: url) 24 player.numberOfLoops = numberOfLoops 25 player.prepareToPlay() //再生準備 26 player.volume = volume 27 initVolume = volume 28 } catch { 29 fatalError("Failed to initialize a player.") 30 } 31 32 } else { 33 fatalError("Error loading sound resource: " + fileNamed) 34 } 35 36 } 37 38 func isPlaying() -> Bool{ 39 return player.isPlaying 40 } 41 42 func play() { 43 player.volume = initVolume 44 player.play() 45 } 46 47 func stop(){ 48 player.setVolume(0, fadeDuration: timeInterval) 49 //DispatchTime.now() 呼ばれた時の時間 50 DispatchQueue.main.asyncAfter(deadline:DispatchTime.now() + 3) { 51 self.player.stop() 52 self.player.currentTime = self.currentTime 53 } 54 } 55 56 func setVolume(_ value:Float) { 57 player.volume = value 58 } 59}
とりあえずプロジェクト内であれば再生できるところまで作成しました。
プロジェクトの外にある音楽ファイルを参照して再生するには、どのように書くと良いですか?
また、プロジェクトの外に音楽ファイルをおくことは考えてはいるのですがユーザーが保存しやすく、アプリケーションとして参照しやすい場所がわからないです。どのような場所が良いでしょうか?
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/20 05:26 編集
2018/06/20 05:36