下面的Image数组中调用Image-5时是否可以播放声音
这里是完整的代码,包括设置 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
}
最佳答案
由于你的间隔是固定的,你已经知道 Image-5 何时会被发射,所以试试这个:
let whichImage: Int = 5
let when = DispatchTime.now() + imageView.animationDuration * TimeInterval(whichImage-1)
DispatchQueue.main.asyncAfter(deadline: when) {
// Play sound here
}
关于ios - 如何使用 Swift 3.0 播放附加到图像数组的声音?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47613103/