Swift 2 AVPlayer - Воспроизвести следующее видео Предыдущее видео
Я изучаю эту часть более одного дня. Пожалуйста, предложите любую идею.
Я должен выполнить для воспроизведения видео. У меня есть список видео. Если пользователь делает это полноэкранное видео, тогда кнопка предыдущего и следующего проигрывателя включается и воспроизводится при нажатии.
Вот мой код;
var commmentQueuePlayer = AVQueuePlayer()
var items = [AVPlayerItem]()
if let player = comPlayerControl {
let videoURL: String = "http://cdnapi.kaltura.com/p/11/sp/11/playManifest/entryId/0_6swapj1k/format/applehttp/protocol/http/a.m3u8"
let firstItemURL: String = "http://cdnapi.kaltura.com/p/11/sp/11/playManifest/entryId/0_2p3957qy/format/applehttp/protocol/http/a.m3u8"
let secondItemURL: String = "http://cdnapi.kaltura.com/p/11/sp/11/playManifest/entryId/0_buy5xjol/format/applehttp/protocol/http/a.m3u8"
let firstItem = AVPlayerItem(URL: NSURL(string: firstItemURL)! )
let secondItem = AVPlayerItem(URL: NSURL(string: secondItemURL)! )
let playerItem = AVPlayerItem(URL: NSURL(string: videoURL)! )
items = [firstItem,secondItem,playerItem]
commmentQueuePlayer = AVQueuePlayer(items: items)
player.player = commmentQueuePlayer
player.view.frame = videoCell.frame
player.view.sizeToFit()
player.showsPlaybackControls = true
videoCell.addSubview(player.view)
// comPlayerControl.player?.play()
}
То, что здесь происходит, когда-то игра начинается со второго. как очередь.
Пожалуйста, дайте мне знать, хорошо ли использовать AVQueuePlayerController или AVPlayerController.
Пожалуйста, помогите мне. Я Google, к сожалению, я не мог получить решение.
Я хочу знать, что я могу вызвать Следующая предыдущая иконка игрока
Пожалуйста, предложите.
2 ответа
Я создал демонстрационный проект, в котором показано, как поместить пользовательские кнопки поверх AVPlayer, и они реагируют на нажатия.
Что было сделано:
- Созданный файл Xib (использует автоматическую разметку), который содержит пользовательские кнопки, такие как "Далее", "Воспроизведение" и другие.
- Кнопки были подключены к источнику, который печатает, что нужно сделать. Нравится: играть дальше или переиграть.
- Был добавлен наблюдатель, который наблюдает, когда видео заканчивается для воспроизведения.
- Когда видео закончится, будет показан файл в формате xib с кнопками.
Я бы порекомендовал использовать AVQueuePlayer. Игрок в очереди автоматически воспроизведет следующий элемент в очереди после завершения воспроизведения текущего элемента. Следует помнить, что после завершения воспроизведения AVPlayerItem он будет удален из очереди, поэтому, если вы хотите вернуться назад, вам придется либо сбросить очередь, либо вручную добавить новые элементы в очередь. Это реализация это
В Swift перезагрузка очереди должна выглядеть примерно так
func resetVideoQueue(video: string){
if let videos = Videos {
var queue: [AVPlayerItem] = []
switch video {
case "vid1":
queue.append(AVPlayerItem(URL: NSURL(string: videos["vid1"])!))
queue.append(AVPlayerItem(URL: NSURL(string: videos["vid2"])!))
queue.append(AVPlayerItem(URL: NSURL(string: videos["vid3"])!))
queue.append(AVPlayerItem(URL: NSURL(string: videos["vid4"])!))
break
case "vid2":
queue.append(AVPlayerItem(URL: NSURL(string: videos["vid2"])!))
queue.append(AVPlayerItem(URL: NSURL(string: videos["vid3"])!))
queue.append(AVPlayerItem(URL: NSURL(string: videos["vid4"])!))
break
case "vid3":
queue.append(AVPlayerItem(URL: NSURL(string: videos["vid3"])!))
queue.append(AVPlayerItem(URL: NSURL(string: videos["vid4"])!))
break
case "vid4":
queue.append(AVPlayerItem(URL: NSURL(string: videos["vid4"])!))
break
}
setVideoPlayer(queue)
}
}
internal func setVideoPlayer(queue: [AVPlayerItem]) {
queuePlayer = AVQueuePlayer(items: queue)
videoPlayerViewController.player = queuePlayer
presentViewController(videoPlayerViewController, animated: true) {
self.videoPlayerViewController.player?.play()
}
}
Чтобы перейти к следующему элементу, используйте метод advanceToNextItem(), предложенный MrHaze.