시스템에서 제공되는 재생 컨트롤러와 함께 플레이어 객체의 비디오 컨텐츠를 보여주는 객체입니다.
class AVPlayerViewController: UIViewController
AVPlayerViewController를 사용하면 고유 시스템 플레이어의 스타일 및 기능에 맞게 미디어 플레이 기능을 앱에 손쉽게 추가할 수 있습니다. AVPlayerViewController는 시스템 프레임워크 클래스이므로 플레이어 앱은 추가적인 작업 없이 향후의 운영 시스템의 새로운 미학과 기능을 자동으로 적용할 수 있습니다.
중요 AVPlayerViewController의 하위 클래스를 생성하지 마세요. 이 클래스의 메서드를 재정의하는 것은 지원되지 않으며 정의되지 않은 동작이 발생할 수 있습니다.
AirPlay를 사용하면 사용자가 Apple TV에서 비디오 컨텐츠를 재생하고 오디오 컨텐츠를 타사 AirPlay 스피커 및 수신기로 스트리밍 할 수 있습니다. AVPlayerViewController는 자동으로 AirPlay를 지원하지만 앱에서 활성화되기 위해서는 일부 프로젝트 및 오디오 세션 구성 작업이 필요합니다. 이 작업을 수행하는 방법은 Configuring Audio Settings for iOS and tvOS의 Media Playback Programming Guide를 참고하세요.
AirPlay 기능에 대한 자세한 내용은 AirPlay Overview를 참고하세요.
iOS 9부터 AVPlayerViewController를 사용하여 지원되는 iPad 모델들에 PIP 재생을 제공할 수 있습니다. PIP 재생은 사용자로 하여금 피디오 플레이어를 작은 떠 있는 창으로 최소화하여 다른 앱에서나 혹은 해당 앱에서 다른 동작들을 수행할 수 있도록 하는 것입니다. 이는 새로운 수준의 멀티태스킹 기능을 제공하여 사용자는 자신의 장치에서 다른 활동을 하면서 계속 컨텐츠를 재생할 수 있습니다. iPad 앱에서 PIP를 지원하는 방법에 대한 자세한 내용은 AVKit for iOS의 Media Playback Programming Guide를 참고하세요.
tvOS의 AVPlayerViewController
는 앱에 고급 Siri 원격 제어 기능을 제공합니다. 이를 통해 사용자는 컨텐츠를 쉽게 재생하고 탐색하고 자막 및 대체 오디오 트랙과 같은 지원되는 기능에 액세스할 수 있습니다. AVPlayerViewController
는 또한 “15초 건너 뛰기” 및 “뭐라고 말했나요?”와 같은 Siri 원격 음성 명령을 사용하여 콘텐츠 재생을 제어하도록 지원합니다.
tvOS 용 AVKit은 AVPlayerViewController
및 AVPlayerItem
의 기능을 확장하여 추가적인 컨텐츠 탐색 및 보여주기 방법을 제공합니다.
탐색 마커 그룹. 네비게이션 마커 그룹은 사용자가 미디어 프리젠테이션의 중요한 이벤트 사이를 이동할 수 있게 합니다. 탐색 마커 그룹의 가장 일반적인 형태는 장(Chapter) 목록이지만, 탐색을 위한 추가 혹은 대체 수단을 만들 수도 있습니다. (예 : 사용자가 기록된 스포츠 이벤트의 주요 순간 사이를 빠르게 이동할 수 있도록 허용합니다.) 플레이어 뷰 컨트롤러를 통해 사용자는 여러 마커 그룹 중에서 미디어 컨텐츠를 탐색 할 수 있습니다.
AVNavigationMarkersGroup 클래스를 사용해서 네비게이션 마커를 생성하고 설명을 추가할 수 있으며, navigationMarkerGroup 프로퍼티를 통해 마커 그룹을 플레이어 뷰 컨트롤러에 표시되고 있는 AVPlayerItem 객체와 연결합니다.
삽입된 컨텐츠 일부 컨텐츠는 플레이어 보기에 보여지는 주요 컨텐츠와 연관이 없거나, 다른 프레젠테이션 요구사항을 가질 수 있습니다. 예를 들어, 사용자가 광고를 건너뛰도록 하거나 사용자가 필수 법적 고지를 건너 뛰지 않도록 할 수 있습니다.
AVInterstitialTimeRange 클래스를 사용하여 삽입된 컨텐츠를 설명하고, interstitialTimeRanges 프로퍼티를 사용하여 해당 시간 범위를 현재 플레이어 뷰 컨트롤러에 표시되는 AVPlayerItem 와 연결합니다. 그런 다음 삽입된 보기 컨텐츠가 재생될 때 플레이어 뷰 컨트롤러의 delegate 객체에 알림을 보내고 이에 따라 requiresLinearPlayback 속성과 같은 재생 옵션을 변경할 수 있습니다.
컨텐츠 제안. TV쇼 시리즈 컨텐츠를 보여줄 때, 현재 에피소드가 끝나면 사용자가 볼 수 있는 추가적인 컨텐츠를 제안하고자 합니다. tvOS 10부터 AVKit 컨텐츠 제안을 사용하여 이 기능을 앱에 쉽게 추가할 수 있습니다.
AVContentProposal 클래스를 사용하여 제안된 컨텐츠를 설명하고, 플레이어 뷰 컨트롤러의 AVPlayerItem)의 nextContentProposal 프로퍼티로 설정하세요. 플레이어 뷰 컨트롤러의 delegate 객체의 메서드를 구현하여 컨텐츠 제안을 보여주거나 제안에 대한 사용자의 수락, 거절, 지연에 응답하는 액션을 수행할 준비를 할 수 있습니다.
자세한 내용은 AVKit for tvOS의 Media Playback Programming Guide를 참고하세요.
// player 뷰 컨트롤러에 미디어 컨텐츠를 제공하는 player 입니다.
var player: AVPlayer?
// player 뷰 컨트롤러를 위한 위임자 객체입니다.
var delegate: AVPlayerViewControllerDelegate?
// player 뷰 컨트롤러와 연관해서 미디어 재생 이벤트에 응답하기 위해 메소드들입니다.
protocol AVPlayerViewControllerDelegate
// player view controller가 재생 컨트롤러를 보여줘야 하는지에 대한 Bool 값입니다.
var showsPlaybackConntrols: Bool
// 사용자에 의해 요청이 왔을 때 리시버가 정보 뷰를 보여줘야 하는지에 대한 Bool 값입니다.
var playbackControlsIncludeInfoViews: Bool
// 리시버가 재생 바와 관련된 컨트롤러를 보여주어야 하는지에 대한 Bool 값입니다.
var playbackControlsIncludeTransportBar: Bool
// 플레이어 뷰 컨트롤러가 iPad 에서 PIP를 허용하는지에 대한 Bool 값입니다.
var allowsPictureInPicturePlayback: Bool
// 비디오 컨텐츠와 재생 컨트롤 사이에 보여지는 뷰입니다.
var contentOverlayView: UIView?
// 재생 버튼이 눌렸을 때 player가 자동적으로 풀 스크린으로 보여져야 하는지에 대한 Bool 값입니다.
var entersFullScreenWhenPlaybackBegins: Bool
// 재생이 끝났을 때 player가 풀스크린을 종료해야 하는지에 대한 Bool 값입니다.
var exitsFullScreenWhenPlaybackEnds: Bool
// AVPlayer 객체와 연결된 현재 아이템의 첫번째 비디오 프레임이 보여질 준비가 되었는지에 대한 Bool 값입니다.
var isReadyForDisplay: Bool
// 플레이어 뷰 컨트롤러 뷰의 바운더리 내에서 현재 보여지는 비디오 이미지의 사이즈와 위치.
var videoBounds: CGRect
// 플레이어 뷰 컨트롤러의 뷰의 바운더리 내에서 어떻게 비디오가 보여져야 하는지 정하는 string 값입니다.
var videoGravity: AVLayerVideoGravity
// 사용자가 미디어 컨텐츠를 건너뛸 수 있는지를 결정하는 Bool 값입니다.
var requiresLinearPlayback: Bool
// 재생 컨트롤이 보여질 때에도 영구적으로 가려지지 않을 영역을 나타내는 레이아웃 가이드입니다.
var unobscuredContentGuide: UILayoutGuide
// 플레이어 뷰 컨트롤러가 현재 재생중인 정보 센터를 업데이트하는지 여부를 나타내는 Bool 값입니다.
var updatesNowPlayingInfoCenter: Bool
// 리시버가 화면의 기본 표시 기준을 재생중인 에셋의 기준으로 자동 변경하는지 여부를 나타내는 부울 값입니다.
var appliesPreferredDisplayCriteriaAutomatically: Bool
// 시스템 제공 정보 및 설정 패널과 함께 클라이언트 특정 컨텐츠 및 제어 기능을 제공하는보기 컨트롤러.
var customInfoViewController: UIViewController?
// 컨텐츠 제안의 표시를 담당하는 뷰 컨트롤러
var contentProposalViewController: AVContentProposalViewController!
// 건너뛰기 제스처에 의해 발생된 동작입니다.
var skippingBehavior: AVPlayerViewControllerSkippingBehavior
// 플레이어 뷰 컨트롤러의 건너뛰기 동작을 표시하는 상수
enum AVPlayerViewControllerSkippingBehavior
// 뒤로 건너 뛰기를 사용할 수 있는지 여부를 나타내는 Bool 값입니다.
var isSkipBackwardEnabled: Bool
// 앞으로 건너 뛰기를 사용할 수 있는지 여부를 나타내는 Bool 값입니다.
var isSkipForwardEnabled: Bool
// 사용자가 사용할 수 있는 자막 언어 집합을 제한하는 언어 코드의 옵셔널 타입 배열입니다.
var allowedSubtitleOptionLanguages: [String]?
// 사용자가 자막 표시를 비활성화 할 수 있는지 여부를 결정하는 부울 값입니다.
var requiresFullSubtitles: Bool
// iAd에 이 앱이 프리롤 광고를 재생할 예정임을 알립니다.
class func preparePrerollAds()
// 프리 롤 동영상 iAd 재생을 요청합니다.
func playPrerollAd(completionHandler: (Error?) -> Void)
// 프리롤 동영상 광고의 재생을 취소합니다.
func cancelPreroll()
WKUserScript 개체는 웹 페이지에 삽입 할 수 있는 스크립트를 나타냅니다.
class WKUserScript : NSObject
// WKUserContentController에 추가될 수 있는 초기화된 사용자 스크립트를 반환합니다.
init(source: String, injectionTime: WKUserScriptInjectionTime, forMainFrameOnly: Bool)
// 스크립트의 소스 코드입니다.
var source: String
// 스크립트가 웹페이지에 삽입되어야 하는 타이밍입니다.
var injectionTime: WKUserScriptInjectionTime
// 스크립트가 메인 프레임에만 삽입되어야 하는지(true)
// 혹은 모든 프레임에 삽입되어야 하는 지(false)에 대한 Bool 값입니다.
var isForMainFrameOnly: Bool
// 스크립트가 웹페이지에 삽입되어야 하는 타이밍입니다.
// .atDocumentStart : DOM을 생성한 다음 다른 컨텐츠들을 읽어오기 전에 삽입됩니다.
// .atDocumentEnd : DOM을 읽어온 다음, 다른 하위 리소스들을 불러오기 전에 삽입됩니다.
enum WKUserScriptInjectionTime
NSObject의 서브 클래스이며 CVarArg, Equatable, Hashable, NSSecureCoding 프로토콜을 채택합니다.
WKScriptMessageHandler 프로토콜을 채택하는 클래스는 웹 페이지에서 실행중인 JavaScript에서 메시지를 수신하는 메서드를 제공합니다.
protocol WKScriptMessageHandler
// 웹페이지로부터 스크립트 메시지를 수신했을 때 호출됩니다.
func userContentController(WKUserContentController, didReceive: WKScriptMessage)
NSObjectProtocol 프로토콜을 채택합니다.
WKUserContentController 객체는 JavaScript가 메시지를 게시하고 웹 스크립트에 사용자 스크립트를 삽입하는 방법을 제공합니다.
class WKUserContentController : NSObject
// 메세지 핸들러를 추가합니다.
func add(WKScriptMessageHandler, name: String)
// 유저 스크립트를 추가합니다.
func addUserScript(WKUserScript)
// 유저 스크립트와 연관된 모든 것을 제거합니다.
func removeAllUserScripts()
// 스크립트 메시지 핸들러를 제거합니다.
func removeScriptMessageHandler(forName: String)
// 유저 컨텐츠 컨트롤러와 관련된 유저 스크립트들입니다.
var userScripts: [WKUserScript]
The user scripts associated with the user content controller.
// 컨텐츠 룰의 리스트를 추가합니다.
func add(WKContentRuleList)
// 룰 리스트를 제거합니다.
func remove(WKContentRuleList)
// 모든 룰 리스트를 제거합니다.
func removeAllContentRuleLists()
// 웹 컨텐츠에 적용할 수 있는 컴파일된 룰 리스트입니다.
class WKContentRuleList
A compiled list of rules to apply to web content.
class WKContentRuleListStore
NSObject의 서브 클래스이며 CVarArg, Equatable, Hashable, NSSecureCoding 프로토콜을 채택합니다.
WKScriptMessageHandler : WKScriptMessageHandler 프로토콜을 준수하는 클래스는 웹 페이지에서 실행중인 JavaScript에서 메시지를 수신하는 메서드를 제공합니다.
WKScriptMessage 객체는 웹 페이지에서 보낸 메세지에 대한 정보를 포함합니다.
class WKScriptMessage : NSObject
// 메세지의 바디입니다.
var body: Any
// 메세지를 보내는 프레임
var frameInfo: WKFrameInfo
// 메시지를 보낼 메시지 핸들러의 이름.
var name: String
// 메세지를 보낸 웹뷰
var webView: WKWebView?
NSObject가 부모 클래스이고, CVarArg, Equatable, Hashable 프로토콜을 채택함
창에 웹 컨텐츠를 보여줍니다. 사용자가 활성화한 링크로 이동하거나, 뒤로 가기 목록을 관리하거나, 최근에 방문한 페이지의 기록을 관리하는 것과 같은 브라우저 기능을 구현합니다.
WebKit은 창에 웹 컨텐츠를 표시하는 클래스 세트를 제공하며 사용자가 클릭 할 때 링크를 따라 가고, 뒤로 가기 목록을 관리하고 최근 방문한 페이지의 내역을 관리하는 등의 브라우저 기능을 구현합니다. WebKit은 웹 페이지를 로드하는 복잡한 프로세스를 크게 단순화합니다. 즉, 네트워크 오류로 인해 응답이 점진적으로, 임의 순서로 혹은 부분적으로 도착할 수도 있는 HTTP 서버에 비동기적으로 웹 컨텐츠를 요청합니다. 또한 WebKit은 다양한 MIME(Multipurpose Internet Mail Extensions) 유형을 포함 할 수 있는 콘텐츠를 표시하는 프로세스를 단순화하고 각각 고유한 스크롤 막대 세트가 있는 복합 프레임 요소를 단순화합니다.
중요 앱의 메인 스레드나 메인 디스패치 큐에서만 WebKit 함수와 메소드를 호출하십시오.
// WKNavigationDelegate 프로토콜의 메서드는 웹뷰에서 탐색 요청을 수락, 로드 및 완료하는 과정에서 트리거되는 사용자 지정 동작을 구현하는 데 도움이됩니다.
protocol WKNavigationDelegate
// WKProcessPool 객체는 웹 컨텐츠 프로세스 풀을 나타냅니다.
class WKProcessPool
// WKWindowFeatures 객체는 새로운 웹 뷰가 요청되었을 때 포함하는 창에 대한 건택적인 특성들을 지정합니다.
class WKWindowFeatures
// 인앱 브라우저와 같이 상호작용하는 웹 컨텐츠를 보여주는 객체입니다.
class WKWebView
// 웹 뷰를 초기화하는 데 사용되는 속성 모음입니다.
class WKWebViewConfiguration
// WKPreferences 객체는 웹 뷰의 설절들을 캡슐화합니다.
class WKPreferences
// WKUIDelegate 클래스는 웹 페이지 대신 네이티브 사용자 인터페이스 요소를 표시하는 메서드를 제공합니다.
protocol WKUIDelegate
// WKNavigation 객체는 로딩중인 웹 페이지 프로세스를 추척하는 정보를 포함하고 있습니다.
class WKNavigation
// WKNavigationAction 객체는 정책 결정을 하는데 사용되는 탐색을 발생시키는 작업에 대한 정보를 가지고 있습니다.
class WKNavigationAction
// WKNavigationResponse 객체는 정책 결정을 하는데 사용되는 탐색 응답에 대한 정보를 가지고 있습니다.
class WKNavigationResponse
A WKNavigationResponse object contains information about a navigation response, used for making policy decisions.
// WKBackForwardList 객체는 최근 페이지에서 앞으로 가거나 뒤로 갈 때 사용되도록 방문한 페이지의 목록을 가지고 있습니다.
class WKBackForwardList
// WKBackForwardListItem 객체는 웹뷰의 back-forward 목록에 있는 웹페이지들을 나타냅니다.
class WKBackForwardListItem
// WKFrameInfo 객체는 웹페이지의 프레임에 대한 정보를 포함하고 있습니다.
class WKFrameInfo
// WKWebsiteDataRecord 객체는 원래 URL의 도메인 이름과 접미사로 그룹화된 웹사이트 데이터를 나타냅니다.
class WKWebsiteDataRecord
// WKWebsiteDataStore 객체는 선택된 웹사이트에 사용된 다양한 타입의 데이터를 나타냅니다. 데이터 타입에는 쿠키에 포함된 Data 타입들, 디스크와 메모리 캐시들, WebSQL, IndexedDB 데이터베이스, 로컬 저장소와 같은 영속성 데이터들이 포함됩니다.
class WKWebsiteDataStore
// WKOpenPanelParameters 객체는 파일 업로드 컨트롤에서 지정한 매개 변수들이 포함하고 있습니다.
class WKOpenPanelParameters
// WKUserContentController 객체는 JavaScript가 메세지를 보낼 수 있는 방법과 사용자 스크립트를 웹뷰에 삽입하는 방법을 제공합니다.
class WKUserContentController
// WKScriptMessage 객체는 웹페이지에서 보낸 메세지에 대한 정보를 포함합니다.
class WKScriptMessage
// WKUserScript 객체는 웹페이지에 삽입될 수 있는 스크립트를 나타냅니다.
class WKUserScript
// WKScriptMessageHandler 프로토콜을 채택하는 클래스는 웹페이지에서 동작하는 JavaScript로부터 메시지를 받을 수 있는 메소드들을 제공합니다.
protocol WKScriptMessageHandler
// WebKit이 처리할 수 없는 URL 스키마들의 리소스들을 불러오기 위한 프로토콜입니다.
protocol WKURLSchemeHandler
// 리소스를 불러오기 위해 만들어진 작업
protocol WKURLSchemeTask
// WKSecurityOrigin 개체는 호스트 이름, 프로토콜 및 포트 번호로 구성됩니다.
// first-party는 웹사이트와 같이 동일한 보안 origin 을 가지는 어떠한 로드 URL든 불러옵니다. first-party 웹페이지들은 스크립트와 데이터베이스와 같은 다른 리소스들을에 접근할 수 있습니다.
class WKSecurityOrigin
WKPreviewElement 객체는 웹페이지를 미리보기 위한 정보를 포함합니다.
class WKPreviewElementInfo
// WKPreviewActionItem 프로토콜은 미리보기 action 항목의 속성값들에 접근할 수 있도록 합니다.
protocol WKPreviewActionItem
class WKSnapshotConfiguration
WebDriver는 웹 콘텐츠의 자동화 된 테스트를 만드는 데 사용하는 브라우저 자동화 API입니다. Safari의 WebDriver 구현은 Selenium JSON Wire Protocol을 지원합니다.
WebDriver는 웹 콘텐츠의 자동화 된 테스트를 만드는 데 사용하는 브라우저 자동화 API입니다. Safari의 WebDriver 구현은 W3C 끝점을 지원합니다.
테스트 자동화를위한 Safari의 향상된 API 구현에 대해 읽어보십시오.
WebDriver를 활성화하고 테스트를 실행하세요.
// WebKit API들이 반환할 수 있는 에러 값들입니다.
struct WKError