【发布时间】:2015-12-14 16:31:24
【问题描述】:
播放声音时没有错误消息。我放了一个打印语句进行测试,并且 url 得到了正确的路径。播放按钮发出咔嗒声,有时我会听到微弱的咔嗒声,但仅此而已。没有其他声音发出。我尝试过不同的 mp3 文件。如果我删除 mp3 文件,我会收到一条错误消息。我检查了音量。
播放按钮位于第二个视图控制器中。主视图控制器有一个表格视图。当用户点击单元格时,它会将他带到这个视图控制器。
// DetailVC.swift
import AVFoundation
import UIKit
class DetailVC: UIViewController {
var duaPlayer = "" //is this correct???
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func playbutton(sender: AnyObject) {
do {
let url = NSBundle.mainBundle().URLForResource("track1", withExtension: "mp3")
var duaPlayer = try AVAudioPlayer(contentsOfURL: url!)
duaPlayer.prepareToPlay()
print (url)
duaPlayer.volume = 0.5
duaPlayer.play()
}
catch
{ fatalError("err")}
}
【问题讨论】:
-
可能是 duaPlayer 在开始播放之前就被释放了,因为它是一个局部变量。尝试在 playbutton 方法中删除 duaPlayer 前面的 var。
-
duaPlayer = try AVAudioPlayer(contentsOfURL: url!) //我取出了var,它没有编译,它说不能将“AVAudioPlayer类型的值赋给字符串类型”
-
当然,你的duaPlayer是String。将其更改为 AVAudioPlayer 类型的可选。
-
如果对我的问题有帮助,请将其标记为有用,谢谢