我正在使用我在AppDelegate.swift类中初始化为全局变量的管理器类来管理在我的应用程序中播放音乐。这是我的经理类
的一些代码import Foundation
import AVFoundation
import MediaPlayer
/*
protocol PlayerDelegate : class {
func soundFinished(sender : AnyObject)
}*/
var quoteList = [Quote]()
var isRandomQuote = false
enum alarmTypes {
case song
case quote
case randomQuote
}
var myAVAudioPlayer:AVAudioPlayer = AVAudioPlayer()
var MPMediaPlayer = MPMusicPlayerController()
public class MediaManager: NSObject, AVAudioPlayerDelegate{
//weak var delegate : PlayerDelegate?
var MPMediaItem: MPMediaItemCollection!
var quoteSelected = Quote()
var alarmType = alarmTypes.randomQuote
func selectRandom(){
self.alarmType = alarmTypes.randomQuote
quoteSelected = pickRandomQuote()
}
func selectSong(MPMedia: MPMediaItemCollection){
self.alarmType = alarmTypes.song
MPMediaItem = MPMedia
}
func selectQuote(quote: Quote){
self.alarmType = alarmTypes.quote
quoteSelected = quote
}
var isPlaying:Bool = false
override init(){
super.init()
myAVAudioManager.delegate = self
}
然而,当我去运行代码时,我收到此错误:线程1:EXC_BAD_ACCESS(代码= 1,地址= 0x8)
我尝试过将其他文件作为委托,但这也没有用。有没有办法让我的经理成为代表,以便在完成播放歌曲时能够回应播放器?
答案 0 :(得分:0)
我认为当你设置委托时myAVAudioManager仍然是nil。尝试先创建AVAudioPlayer的新实例。