【Swift】iOSアプリで遅延なく効果音を鳴らす方法
解決したいこと
Swiftを使って、ボタンを押すと音声出力されるiOSアプリを作っています。
主観ですが、効果音を鳴らすときに遅延が発生しているようなので無くしたいです。
具体的にはドラムアプリを作成しているので、
Spotify等の再生を止めずに、遅延なく、効果音を出力させる方法
が知りたいです。
現状「Spotify等の再生を止めずに」は出来ていますが、「遅延なく」が出来ていない状況です。
詳しい方、よろしくお願いいたします。
現在のコード
import UIKit
import AudioToolbox
class CollectionViewCell: UICollectionViewCell {
@IBOutlet weak var button: UIButton!
override func awakeFromNib() {
super.awakeFromNib()
}
//ボタンを押した時
@IBAction func touchDownButton(_ sender: UIButton) {
var soundId:SystemSoundID = 0
//効果音を出力
if let soundUrl:NSURL = NSURL(fileURLWithPath:Bundle.main.path(forResource: "ファイル名", ofType:"caf")!) as NSURL?{
AudioServicesCreateSystemSoundID(soundUrl, &soundId)
AudioServicesPlaySystemSound(soundId)
}
}
}
自分で試したこと
OpenALを試してみましたが、自分の実装ではBGMが止まってしまいました。
AVAudioPlayerでは、明らかに遅延していたのでAudioToolboxを使用しています。
少しは改善したようですが、まだラグが気になります。
iOSアプリで効果音を鳴らすとき、どのフレームワークを使用するが最善なのでしょうか...
0