简体   繁体   English

View控制器过渡中的问题?

[英]Issue in View controller transition?

I'm having some issue with my project. 我的项目有问题。 I'm Playing audio using AVPlayer in ViewWillAppear and It is working fine. 我正在ViewWillAppear中使用AVPlayer播放音频,并且工作正常。 I have a text read button in player, when i'm click this button, a new view controller is coming and showing some text, but when i am pressing back button, audio is playing from start. 我在播放器中有一个文本读取按钮,当我单击此按钮时,将出现一个新的视图控制器并显示一些文本,但是当我按“后退”按钮时,音频将从头开始播放。 I want to play it continously. 我想连续播放。 I have no idea, how will do? 我不知道该怎么办? I am using Swift3. 我正在使用Swift3。

// PlayerViewController // PlayerViewController

import UIKit
import AVFoundation
import AVKit

class PlayerViewController: UIViewController, URLSessionDownloadDelegate {

 var audioFileURL : NSURL!


func play() {

    RemoteModel.sharedInstanceRemoteModel.audioPlayer.play()
}

func pause() {
   RemoteModel.sharedInstanceRemoteModel.audioPlayer.pause()
}

override func viewWillAppear(_ animated: Bool) {

     super.viewWillAppear(animated)

        if (audioFileURL != nil){
                   playSound(url:  audioFileURL as NSURL)
                     }
      }

// MARK:-  Play Sound

func playSound(url:NSURL){

    showHUD("Loading...")
    startTime = Date()

    print("geturl \(url)\n")
    DispatchQueue.main.async {
        let asset = AVURLAsset(url: url as URL, options: nil)
        //  print("Testing line 725== \(asset)")

        let playerItem = AVPlayerItem(asset: asset)


   RemoteModel.sharedInstanceRemoteModel.audioPlayer.replaceCurrentItem(with: playerItem)

        RemoteModel.sharedInstanceRemoteModel.audioPlayer.play()

    }
}

@IBAction func VolumeControl(_ sender: UISlider) {

    RemoteModel.sharedInstanceRemoteModel.audioPlayer.volume = sender.value
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}



 // MARK: - ibutton Action


@IBAction func ibuttonAction(_ sender: UIButton) {

     self.performSegue(withIdentifier: "ibutton", sender: self)
  }

}

// iButtonViewController // iButtonViewController

   import UIKit
   import AVFoundation

   class MusicTextViewController: UIViewController,  {

    @IBOutlet var textView: UITextView!


override func viewDidLoad() {
    super.viewDidLoad()

}

override func didReceiveMemoryWarning() {
 super.didReceiveMemoryWarning()

}

@IBAction func BackAction(_ sender: UIButton) {

    // self.dismiss(animated : true, completion : nil)


    self.performSegue(withIdentifier: "goToPlayerViewFromTextView", sender: self)
}

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "goToPlayerViewFromTextView" {

        let playerVC = segue.destination as! PlayerViewController

        playerVC.comingFromPlayerTextView = true

        }
     }
  }

Done by Creating a subview of PlayerViewController. 通过创建PlayerViewController的子视图完成。 Now i can easily play the audio as well as read the text. 现在,我可以轻松播放音频以及阅读文本。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM