如何使用Swift 3.0播放附加到Image Array的声音?
问题描述:
是否有可能发挥时,图像-5被称为在下面的图像阵列如何使用Swift 3.0播放附加到Image Array的声音?
下面是完整的代码,包括建立AVAudioPlayer
ImageArray和你建议的代码声音:
import UIKit
import AVFoundation
class ViewController: UIViewController {
var player:AVAudioPlayer = AVAudioPlayer()
@IBOutlet weak var imageView: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
var imagesName = ["Image-1.png","Image-2.png","Image-3.png","Image-4.png","Image-5.png","Image-6.png","Image-7.png","Image-8.png","Image-9.png","Image-10.png"]
var images = [UIImage]()
for i in 0..<imagesName.count{
images.append(UIImage(named: imagesName[i])!)
}
imageView.animationImages = images
imageView.animationDuration = 0.5
imageView.animationRepeatCount = 1
imageView.startAnimating()
do
{
let audioPath = Bundle.main.path(forResource: "song", ofType: "mp3")
try player = AVAudioPlayer(contentsOf: NSURL(fileURLWithPath: audioPath!) as URL)
}
catch
{
//ERROR
}
let whichImage: Int = 5
let when = DispatchTime.now() + imageView.animationDuration * TimeInterval(whichImage-1)
DispatchQueue.main.asyncAfter(deadline: when) {
self.player.play()
// Play sound here
}
答
正如你间隔是固定的,你还挺已经知道当图像-5将被解雇,那么试试这个:
let whichImage: Int = 5
let when = DispatchTime.now() + imageView.animationDuration * TimeInterval(whichImage-1)
DispatchQueue.main.asyncAfter(deadline: when) {
// Play sound here
}
嗨 - 感谢FO请帮忙。我已经更新了完整的代码上面的,但是在显示图片-5 Song.mp3的不火 - 这将触发动画您使用的每幅图像0.5秒所以延迟应为2.5秒完成 –
几秒钟后,不是5秒。然而声音播放开始可能与显示图像不完全同步。 –
喜鲁斯兰Serebriakov - 我已经尝试了您的推荐代码(请参见上文),但它看起来像有2-3秒的延迟,你播放音频文件与AVAudioPlayer第一次,你有什么更多的想法? –