【问题标题】:Issue in View controller transition?视图控制器转换中的问题?
【发布时间】:2017-12-11 11:20:48
【问题描述】:

我的项目有问题。我在 ViewWillAppear 中使用 AVPlayer 播放音频,它工作正常。我在播放器中有一个文本读取按钮,当我单击此按钮时,一个新的视图控制器即将出现并显示一些文本,但是当我按下返回按钮时,音频正在从头开始播放。我想连续播放。我不知道,会怎么做?我正在使用 Swift3。

// 播放器视图控制器

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

   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

        }
     }
  }

【问题讨论】:

  • 请分享您的代码。
  • 感谢您的回复,我添加了男女同校。 LinusGeffrath

标签: ios swift3 uiviewcontroller avplayer


【解决方案1】:

通过创建 PlayerViewController 的子视图来完成。现在我可以轻松播放音频以及阅读文本了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-25
    • 2021-03-13
    • 1970-01-01
    相关资源
    最近更新 更多