我有一个简单的相机,它可以记录视频,然后切换到videoPreview。里面有一个按钮,可以按回镜头。但是,我这样做的视频音频并没有停止。我如何删除它(而不是静音)以便可以采取新的vid?
贝娄是我尝试过的视频预览代码
class VideoPlayback: UIViewController {
//receives url video value from VideoViewController
var videoURL: URL!
//place where video gets displayed
@IBOutlet weak var videoView: UIView!
var avPlayer = AVPlayer()
private var playerQueue: AVQueuePlayer!
private var playerItem1: AVPlayerItem!
private var playerLooper: AVPlayerLooper!
private var playerLayer: AVPlayerLayer!
override func viewDidLoad() {
super.viewDidLoad()
print(avPlayer, "avPlayer")
print("videoURL", videoURL)
playerItem1 = AVPlayerItem(url: videoURL as URL)
print(playerItem1, "playerItem1")
playerQueue = AVQueuePlayer(playerItem: playerItem1)
print(playerQueue, "player queue")
playerLayer = AVPlayerLayer(player: playerQueue)
print(playerLayer, "playerLayer")
playerLooper = AVPlayerLooper(player: playerQueue, templateItem: playerItem1)
print(playerLooper, "player looper")
playerLayer.frame = view.bounds
playerLayer.videoGravity = AVLayerVideoGravity.resizeAspectFill
print(videoView, "yruewioq")
videoView.layer.insertSublayer(playerLayer, at: 0)
view.layoutIfNeeded()
self.playerQueue?.play()
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
//attempt at turing audio off
playerQueue = nil
}
@IBAction func cancelVidPreviewButton(_ sender: Any) {
performSegue(withIdentifier: "cancelVideo", sender: self)
}
}更新:
我也尝试过playerLayer.isMuted = true,但我知道它没有isMuted成员
发布于 2018-11-24 00:25:41
所以我看到,实际上,这里需要做的是,所有有音频的视频数据都需要移除,如下所示
self.playerQueue?.removeAllItems()但是,如果你想摆脱音频,你只需要做.pause(),然后删除数据。这是文档
发布于 2018-11-23 22:18:17
如果我正确理解,你需要确保音频会话在segue之前已经结束。但是,将音量设置为零可能会影响音频会话。
发布于 2018-11-23 22:06:37
可以使用AVPlayer's volume属性来控制AVPlayer的卷。
将volume设置为0可以使音频静音。
根据文档
值0.0表示沉默;值1.0 (默认值)表示播放机实例的全部音频音量。
希望这能有所帮助
https://stackoverflow.com/questions/53453314
复制相似问题