2016-08-11 20 views
0

私はオーディオプレーヤーを作った。私はプレイリストとオーディオバックグラウンド機能を実現しています。私は背景で演奏されたオーディオを認識する必要があります。私はのようなオーディオプレーヤーオブジェクトを作成audioplayerを素早く作成するには?

Firts:私はリストからオーディオをクリックすると

var mp3Player:AVAudioPlayer?=AVAudioPlayer() 
var firstLoad=true 
var playingType_Index=0 
var speedType_Index=0 

は、私は今、再生されるオーディオかを認識するためにselectedAUdioを使用しています私のselectedAudio

let audios=[ 
    [ 
     "image":UIImage.fontAwesomeIconWithName(.Headphones, textColor: UIColor(colorLiteralRed: 223/255, green: 156/255, blue: 104/255, alpha: 1.0), size: CGSizeMake(35, 35)), 
     "title": "Audio1", 
     "desc":"Erkemin", 
     "time":3, 
     "src":NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("audio1", ofType: "mp3")!) 
    ] 
] 

var selectedAudio=[ 
    "id":"", 
    "status":"", 
    "image":"", 
    "title": "", 
    "desc":"", 
    "time":0, 
    "src":"" 
] 

func playAudio(sender:AnyObject){ 
    firstLoad=false 
    backwardBtn.enabled=true 
    step_backward.enabled=true 
    play_pauseBtn.enabled=true 
    stopBtn.enabled=true 
    step_forward.enabled=true 
    forwardBtn.enabled=true 
    audioSlider.enabled=true 

    selectedAudio=audios[sender.tag] 
    selectedAudio["id"]=sender.tag 
    selectedAudio["status"]="true" 

    music() 
    tableView.reloadData() 
} 

にオーディオクリック入れます。しかし、他のビューに移動すると、オーディオは再生され続けますが、選択したオーディオはゼロになります。

どうすればいいですか?

答えて

0

このビューを再作成すると、playAudio()を起動すると、selectAudioプロパティにパラメータが設定されていますが、何らかの理由でこのビューを再作成して、selectedAudioがデフォルト値(空文字列)。

func stopMp3Player() { 
    if let player = mp3Player { 
     if player.playing { 
     player.stop() 
     }  
    } 
} 

警告:あなたは彼の方法stopでプレーヤーを停止する必要がある場合

、あなたは以下のコードのようなものを行うことができますが、このメソッドを構築する際に、あなたがしなければならない(あなたはまた、ポーズを作ることができます) mp3Playerがクラッシュしないように常にnilでないかどうかをチェックしてください。私のようなものだろう、あなたのプレイ方法について

:私は、オーディオを停止する必要はありません

func playMp3Player(filename: String) { 
     let url = NSBundle.mainBundle().URLForResource(filename, withExtension: nil) 
     if (url == nil) { 
      print("Could not find file: \(filename)") 
      return 
     } 
     do { mp3Player = try AVAudioPlayer(contentsOfURL: url!, fileTypeHint: nil) } 
     catch let error as NSError { print(error.description) } 

     if let player = mp3Player { 
      player.volume = // set your volume here 
      player.numberOfLoops = 0 // set the repeating 
      player.prepareToPlay() 
      player.play() 
     } 
} 
+0

を、私は私の更新を見て再生を継続し、オーディオ –

+0

の再生を今すぐ取得する必要があり、希望はあなたが理解するのに役立つことができるものあなたのコードに起こった。もっと助けが必要な場合は、別のビューに移動するために使用するコードを追加してみてください –

関連する問題