2016-01-13 68 views
0

我把歌曲变成一个表中的所有观点继续比赛,当我在详细页中工作中发挥的歌曲,当我回来的歌曲停,我想在所有视图如何使音乐在

继续发挥

的ViewController

if let audio=NSBundle.mainBundle().pathForResource(navigationItem.title , ofType: "mp3") { 
    let url=NSURL (fileURLWithPath: audio) 

    do { 
     player = try AVAudioPlayer (contentsOfURL: url) 
    } 

    catch{"erorr"}  

    player.play()    
} else { 
    print("erorr") 
} 

tableViewController

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
    self.performSegueWithIdentifier("indeaa", sender: tableView) 
} 

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    if segue.identifier == "indeaa" { 
     let vc = segue.destinationViewController as UIViewController 
     let indexpath:NSIndexPath = tableaa.indexPathForSelectedRow! 
     vc.title = arr[indexpath.row] 
    } 
} 
+0

因此,为了澄清,您有视图A继续查看B.视图B播放音频,并且当您导航回视图A时,音频停止。那是对的吗? – kpsharp

+0

是........... –

+0

查看下面的@toast的答案。这是你想要的。 – kpsharp

回答

1

的玩家可能得到释放的观点。您需要让您的播放器可以访问所有细节视图并引用该单个对象。如果你正在寻找一个简单的解决方案,只需创建一个单他们都可以参考:

class AudioPlayer{ 

    static let sharedInstance = new AudioPlayer(); 

    var player : AVAudioPlayer 

    func playAudio(url : NSURL){ 

    //see if player is playing, stop and release, setup new player 

    } 

} 
从您的详细信息视图

然后就叫

AudioPlayer.sharedInstance.playAudio(url) 

注意这不是测试 - 但只是显示了基本的想法。