iOS로 AV에 대한 Vol.2AVKit 애니메이션 재생
6448 단어 iOSSwiftavkitavfoundation
입문
이 글은 iOS가 AV 시리즈에 직면한 두 번째다.
지난번는 AVFoundation과 AVKit의 차이점을 소개했다.
이번에는 AVKit의 AVPlayerViewController를 이용하여 애니메이션을 재생하고 각종 필드와 방법을 검증하는 동작을 합니다.
이 시리즈의 종점
독자들을 위해 iOS를 입력하여 AV를 재생하고 제작하는 기초와 시작, 응용 프로그램의 개발을 난처하게 하지 않는 일을 목표로 한다.
전제 조건
독자들을 위해 iOS를 입력하여 AV를 재생하고 제작하는 기초와 시작, 응용 프로그램의 개발을 난처하게 하지 않는 일을 목표로 한다.
전제 조건
지난번 이전의 보도는 어느 정도
본 보도의 종점
미리 알다
이번부터 우리는 AVFoundation과 AVKit 각급이 인터넷에 발표한 동영상을 방송할 것이다.
인터넷에 동영상을 어떻게 게시하는지 미리 설명하다.
네트워크 비디오 게시 방식
인터넷에서 동영상을 발표하는 데는 두 가지가 있는데 그것이 바로 흐름식과 점진적이다.
유동식 전송
인터넷에서 애니메이션과 사운드 등을 다운로드하면서 순차적으로 재생하는 방식이다.
서버에서 조금씩 영상과 음성 데이터를 보내고 수신 측면에서 동시에 재생합니다.
장점은 네트워크에 대한 부담이 적고 다운로드 대기 시간이 적으며 다중 주파수 대역에서 애니메이션을 보내는 상황에서 통신 상황에 따라 주파수 대역을 바꾸면서 재생할 수 있다는 것이다.
단점은 통신 속도에 따라 애니메이션이 중단되고 소리가 날아다니며 배신 측에 많은 설비와 구조가 필요하다는 것이다.
차례차례
인터넷에서 애니메이션을 다운로드한 후에 재생하는 방식이다.
장점은 다운로드가 완료되면 네트워크 상황에 상관없이 재생을 완성할 수 있고 배포자는 전용 구조를 필요로 하지 않는다는 것이다.
단점은 인터넷에 대한 부담이 커서 원칙적으로 다운로드가 끝나기 전에 애니메이션을 재생할 수 없다는 것이다.
자세한 내용은 참고 문헌일이 등을 참조하십시오.
그림과 같이 다음과 같다삼.
본 기사에서 프로그램 동작 검증에 사용되는 애니메이션은 유동식 전송 형식의 하나인 HLS를 이용하여 보내는 애니메이션사(Apple이 샘플로 보내는 물건이 됨)을 이용한다.https://devstreaming-cdn.apple.com/videos/streaming/examples/bipbop_16x9/bipbop_16x9_variant.m3u8
AVPlayerViewController에서 비디오 재생
이번에는 앞에서 말한 바와 같이 HLS 애니메이션을 재생하는 샘플을 만들어 보겠습니다.
참고문헌오의 샘플 코드는 이해하기 쉬우니 이것을 참고하세요.
UIVIew 내에서 Button, TableView 또는 CollectionView의 Cell 등의 동작을 설정하고 다음 소스 코드를 추가하십시오. guard let url = URL(string: "http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8") else {
return
}
// iOSでAVの情報を管理するためのモデルクラス
// AVの参照先URL、作成日、尺の長さなどが取得できる
let asset = AVAsset(url: url)
// 動画の表示状態や状況を管理するためのモデルクラスを生成
// 再生時間、再生状態(未定義・準備完了・エラー)、バッファリング済みの動画尺などの取得ができる
let playerItem = AVPlayerItem(asset: asset)
// AVの再生や停止、ミュートやアンミュート、ボリューム変更など各種AV操作を行うプレイヤークラス
// AVPlayerは再生したいAVPlayerItemをセットして行う
let player = AVPlayer(playerItem: playerItem)
// AVPlayerViewControllerを生成する
let controller = AVPlayerViewController()
// AVPlayerViewControllerに予め生成しておいたAVPlayerをセットする
controller.player = player
// AVPlayerViewControllerに遷移する
present(controller, animated: true) {
// AVの再生を行う
player.play()
}
이런 화면이 뜨면 애니메이션을 재생하기 시작하면 성공한다.
프로그램에 대한 자세한 설명과 다양한 UI에 대한 설명은 다음 이후에 진행됩니다.
참고 문헌
유동식 전송 ↩
인터넷 영상 발표 방식: 무엇이 흐름식과 점진적인 다운로드입니까? ↩
홈 페이지에서 사용되는 이미지 정보 (스트리밍 전송) ↩
Streaming Examples ↩
제가 OS 영상 재생 주변의 기초를 찾아봤어요. ↩
Reference
이 문제에 관하여(iOS로 AV에 대한 Vol.2AVKit 애니메이션 재생), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/falcon0328/items/fb57ddd56db412013ea1
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
https://devstreaming-cdn.apple.com/videos/streaming/examples/bipbop_16x9/bipbop_16x9_variant.m3u8
guard let url = URL(string: "http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8") else {
return
}
// iOSでAVの情報を管理するためのモデルクラス
// AVの参照先URL、作成日、尺の長さなどが取得できる
let asset = AVAsset(url: url)
// 動画の表示状態や状況を管理するためのモデルクラスを生成
// 再生時間、再生状態(未定義・準備完了・エラー)、バッファリング済みの動画尺などの取得ができる
let playerItem = AVPlayerItem(asset: asset)
// AVの再生や停止、ミュートやアンミュート、ボリューム変更など各種AV操作を行うプレイヤークラス
// AVPlayerは再生したいAVPlayerItemをセットして行う
let player = AVPlayer(playerItem: playerItem)
// AVPlayerViewControllerを生成する
let controller = AVPlayerViewController()
// AVPlayerViewControllerに予め生成しておいたAVPlayerをセットする
controller.player = player
// AVPlayerViewControllerに遷移する
present(controller, animated: true) {
// AVの再生を行う
player.play()
}
유동식 전송 ↩
인터넷 영상 발표 방식: 무엇이 흐름식과 점진적인 다운로드입니까? ↩
홈 페이지에서 사용되는 이미지 정보 (스트리밍 전송) ↩
Streaming Examples ↩
제가 OS 영상 재생 주변의 기초를 찾아봤어요. ↩
Reference
이 문제에 관하여(iOS로 AV에 대한 Vol.2AVKit 애니메이션 재생), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/falcon0328/items/fb57ddd56db412013ea1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)