我的vc代码看起来像这样。showClick函数是一个按钮点击功能。点击这个按钮我要加载一个xib文件。这是一个音乐播放器。
//
// PlayerTestOneVC.swift
// rapapediaPlayer
//
// Created by rumy hasan on 9/3/17.
// Copyright © 2017 rumyhasan. All rights reserved.
//
import UIKit
import Jukebox
var viewOne = UIView()
var viewTow = UIView()
var playerMainView: UIView?
var viewOfAll: UIView?
class PlayerTestOneVC: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
@IBAction func showClick(_ sender: Any) {
if let keywindow = UIApplication.shared.keyWindow{
if var viewtag = keywindow.viewWithTag(50){
viewtag.removeFromSuperview()
}
if let player = Bundle.main.loadNibNamed("Player", owner: self, options: nil)?.first as? Player{
viewOne = player.viewOne
viewTow = player.viewTow
//player.bellowBtn.addTarget(self, action: #selector(change), for: .touchUpInside)
//playerMainView = player
player.ppBtnOut.isHidden = true
player.frame = keywindow.frame
playerMainView = player
viewOfAll = player
viewOfAll?.tag = 50
playerMainView = player
keywindow.addSubview(viewOfAll!)
}
}
}
}
我的xib文件看起来像这样。
单击下面的视图如下所示
没关系,正常工作并播放歌曲但现在如果我再次单击“显示”按钮,它会在现有视图上方创建一个新视图,并且两个播放器都播放自己的音频,我可以同时听到拖曳但是我需要用新的替换第一个。我可以这样做吗?
我的xib文件位于按钮点击代码下方。
@IBAction func belowClick(_ sender: Any) {
if dropDown{
UIView.animate(withDuration: 0.5, delay: 0, options: .curveEaseOut, animations: {
viewOfAll?.frame = (UIApplication.shared.keyWindow?.frame)!
}, completion: { (completedAnimation) in
})
}else{
UIView.animate(withDuration: 0.5, animations: {
viewOfAll?.frame = self.viewOne.frame
viewOfAll?.frame = CGRect(x: 0 , y: (UIApplication.shared.keyWindow?.frame.height)! - 70, width: (UIApplication.shared.keyWindow?.frame.width)!, height: 70)
})
}
dropDown = !dropDown
}
答案 0 :(得分:0)
我认为你的player
开始在其他线程中播放音频文件。只要您点击“显示”按钮,就可以在不停止上一个player
的情况下创建新的player
。您只是通过viewtag.removeFromSuperview()
删除了它的视图,因为它继续播放上一个和新的音频文件。
我认为,您可以创建stop
函数并在删除它之前调用它。