Как отключить звук из видео с помощью AVAudioPlayer? - PullRequest
0 голосов
/ 24 ноября 2018

У меня есть простая камера, которая записывает видео, а затем переходит в videoPreview.В нем есть кнопка, которая hwne нажимает на сегменты назад к камере.Тем не менее, я делаю это видео аудио не останавливается.Как я могу удалить его (не отключить звук), чтобы можно было взять новый 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

Ответы [ 3 ]

0 голосов
/ 24 ноября 2018

Если я правильно понимаю, вам нужно убедиться, что аудио сеанс закончился до перехода.Хотя установка громкости на ноль может повлиять на аудио сеанс.

0 голосов
/ 24 ноября 2018

Итак, я вижу, что на самом деле все, что нужно сделать, - это удалить все видеоданные, содержащие звук, как показано ниже

        self.playerQueue?.removeAllItems()

Но если вы хотите избавиться от звука, вам просто нужносделать .pause() и затем удалить данные.вот документы

0 голосов
/ 24 ноября 2018

Вы можете использовать свойство AVPlayer's volume для управления громкостью AVPlayer.

Установка volume на 0 может отключить звук.

Согласно документации :

Значение 0,0 означает молчание;значение 1.0 (по умолчанию) указывает на полную громкость звука для экземпляра проигрывателя.

Надеюсь, это поможет

...