Swift에서 애니메이션 재생에 대한 노트

12507 단어 SwiftiOS

차리다


MediaPlayer.프레임워크 추가.



MediaPlayer 가져오기

import MediaPlayer

설치 예


모든 화면에 웹 페이지의 동영상을 재생하는 예.
ViewController.swift
import UIKit
import MediaPlayer

class ViewController: UIViewController {

    var moviePlayer:MPMoviePlayerController!

    override func viewDidLoad() {
        super.viewDidLoad()
        var url:NSURL = NSURL(string: "http://sample.com/video.mov")!

        self.moviePlayer = MPMoviePlayerController(contentURL: url)
        self.moviePlayer.view.frame = CGRect(x: 0, y: 0, width: self.view.frame.width, height: self.view.frame.height)
        self.view.addSubview(moviePlayer.view)

        self.moviePlayer.fullscreen = true
        self.moviePlayer.controlStyle = MPMovieControlStyle.Embedded
        self.moviePlayer.repeatMode = MPMovieRepeatMode.One

        NSNotificationCenter.defaultCenter().addObserver(self, selector: "onMPMoviePlayerPlaybackDidFinishNotificationReceived:", name: MPMoviePlayerPlaybackDidFinishNotification, object: nil)
        NSNotificationCenter.defaultCenter().addObserver(self, selector: "onMPMoviePlayerLoadStateDidChangeNotificationReceived:", name: MPMoviePlayerLoadStateDidChangeNotification, object: nil)
        NSNotificationCenter.defaultCenter().addObserver(self, selector: "onMPMoviePlayerWillEnterFullscreenNotificationReceived:", name: MPMoviePlayerWillEnterFullscreenNotification, object: nil)
        NSNotificationCenter.defaultCenter().addObserver(self, selector: "onMPMoviePlayerWillExitFullscreenNotificationReceived:", name: MPMoviePlayerWillExitFullscreenNotification, object: nil)
    }

    func onMPMoviePlayerPlaybackDidFinishNotificationReceived(notification: NSNotification){
        let userInfo: NSDictionary = notification.userInfo!
        let reason = userInfo[MPMoviePlayerPlaybackDidFinishReasonUserInfoKey] as Int
        println("onMPMoviePlayerPlaybackDidFinishNotificationReceived = " + String(reason))
    }

    func onMPMoviePlayerLoadStateDidChangeNotificationReceived(notification: NSNotification){
        let state = self.moviePlayer.loadState
        println("onMPMoviePlayerLoadStateDidChangeNotificationReceived = " + String(state.rawValue))
    }

    func onMPMoviePlayerWillEnterFullscreenNotificationReceived(notification: NSNotification){
        println("onMPMoviePlayerWillEnterFullscreenNotificationReceived")
    }

    func onMPMoviePlayerWillExitFullscreenNotificationReceived(notification: NSNotification){
        println("onMPMoviePlayerWillExitFullscreenNotificationReceived")
    }

}


등록 정보


동작은 MPMoviePlay Controller에서 자세히 지정할 수 있습니다.

controlStyle


재생 컨트롤을 표시하는 방법입니다.선택할 수 있는 값은 다음과 같습니다.
enum MPMovieControlStyle : Int {
case None // No controls、表示しない
case Embedded // Controls for an embedded view、動画内に埋め込み
case Fullscreen // Controls for fullscreen playback、全画面再生用に表示
}

repeatMode


재생을 반복할지 여부입니다.선택할 수 있는 값은 다음과 같습니다.
enum MPMovieRepeatMode : Int {

    case None // 繰り返しなし
    case One // 繰り返す
}

shouldAutoplay


자동으로 재생이 시작됩니까?BOOL 값으로 지정합니다.

scalingMode


영상을 어떻게 축소합니까?선택할 수 있는 값은 다음과 같습니다.
enum MPMovieScalingMode : Int {

    case None // No scaling
    case AspectFit // Uniform scale until one dimension fits
    case AspectFill // Uniform scale until the movie fills the visible bounds. One dimension may have clipped contents
    case Fill // Non-uniform scale. Both render dimensions will exactly match the visible bounds
}

Notification


Player의 상태가 변경되면 Notification에서 공지합니다.나는 통지하고 싶은 몇 가지 요소를 열거했다.
  • MPMoviePlayerPlaybackDidFinishNotification
  • 재생성 종료 시
  • 이 알림은 전체 화면 모드나 사용자가 Done 버튼을 눌렀을 때 화를 내지 않습니다.대신 MP ov i e P l a y r D i d E xit Fulscren Notification을 모니터링합니다.
  • MPMoviePlayerWillEnterFullscreenNotification
  • 전체 화면이 재생되기 전에 알림
  • MPMoviePlayerDidEnterFullscreenNotification
  • 전체 화면 재생 후 알림
  • MPMoviePlayerWillExitFullscreenNotification
  • 전체 화면 재생이 끝날 때까지 알림
  • MPMoviePlayerDidExitFullscreenNotification
  • 전체 화면 재생이 끝난 후 알림
  • 지원되는 형식


    비디오

  • H.264 video
  • up to 1.5 Mbps
  • 640 by 480 pixels, 30 frames per second
  • Low-Complexity version of the H.264 Baseline Profile with AAC-LC audio up to 160 Kbps, 48 kHz, stereo audio in .m4v, .mp4, and .mov file formats
  • H.264 video
  • up to 768 Kbps, 320 by 240 pixels
  • 30 frames per second
  • Baseline Profile up to Level 1.3 with AAC-LC audio up to 160 Kbps, 48 kHz, stereo audio in .m4v, .mp4, and .mov file formats
  • MPEG-4 video
  • up to 2.5 Mbps
  • 640 by 480 pixels, 30 frames per second
  • Simple Profile with AAC-LC audio up to 160 Kbps, 48 kHz, stereo audio in .m4v, .mp4, and .mov file formats
  • 오디오

  • AAC
  • Apple Lossless (ALAC)
  • A-law
  • IMA/ADPCM (IMA4)
  • Linear PCM
  • µ-law
  • DVI/Intel IMA ADPCM
  • Microsoft GSM 6.10
  • AES3-2003
  • 전시: https://developer.apple.com/library/ios/documentation/Miscellaneous/Conceptual/iPhoneOSTechOverview/MediaLayer/MediaLayer.html

    좋은 웹페이지 즐겨찾기