127 lines
4.5 KiB
Markdown
127 lines
4.5 KiB
Markdown
# VIMVideoPlayer
|
||
|
||
`VIMVideoPlayer` is a simple wrapper around the [AVPlayer](https://developer.apple.com/library/prerelease/ios/documentation/AVFoundation/Reference/AVPlayer_Class/index.html) and [AVPlayerLayer](https://developer.apple.com/library/prerelease/ios/documentation/AVFoundation/Reference/AVPlayerLayer_Class/index.html#//apple_ref/occ/cl/AVPlayerLayer) classes.
|
||
|
||
## Setup
|
||
|
||
Add the `VIMVideoPlayerView` and `VIMVideoPlayer` classes to your project.
|
||
|
||
Do this by including this repo as a git submodule or by using cocoapods:
|
||
|
||
```Ruby
|
||
# Add this to your podfile
|
||
target 'MyTarget' do
|
||
pod 'VIMVideoPlayer', ‘{CURRENT_POD_VERSION}’
|
||
end
|
||
```
|
||
|
||
## Usage
|
||
|
||
Create a new `VIMVideoPlayerView` instance or set up an @IBOutlet:
|
||
|
||
```Swift
|
||
|
||
@IBOutlet weak var videoPlayerView: VIMVideoPlayerView!
|
||
|
||
...
|
||
|
||
override func viewDidLoad()
|
||
{
|
||
// Configure the player as needed
|
||
self.videoPlayerView.player.looping = true
|
||
self.videoPlayerView.player.disableAirplay()
|
||
self.videoPlayerView.setVideoFillMode(AVLayerVideoGravityResizeAspectFill)
|
||
|
||
self.videoPlayerView.delegate = self
|
||
}
|
||
|
||
```
|
||
|
||
Play a video:
|
||
|
||
```Swift
|
||
|
||
// Using an NSURL
|
||
|
||
if let path = NSBundle.mainBundle().pathForResource("waterfall", ofType: "mp4")
|
||
{
|
||
self.videoPlayerView.player.setURL(NSURL(fileURLWithPath: path))
|
||
}
|
||
else
|
||
{
|
||
// Video file not found!
|
||
}
|
||
|
||
/*
|
||
Note: This must be a URL to an actual video resource (e.g. http://website.com/video.mp4 or .m3u8 etc.),
|
||
It cannot be a URL to a web page (e.g. https://vimeo.com/67069182),
|
||
See below for info on using VIMVideoPlayer to play Vimeo videos.
|
||
*/
|
||
|
||
// Using an AVPlayerItem
|
||
|
||
let playerItem: AVPlayerItem = ...
|
||
self.videoPlayerView.player.setPlayerItem(playerItem)
|
||
self.videoPlayerView.player.play()
|
||
|
||
// Or using an AVAsset
|
||
|
||
let asset: AVAsset = ...
|
||
self.videoPlayerView.player.setAsset(asset)
|
||
self.videoPlayerView.player.play()
|
||
|
||
```
|
||
|
||
Optionally implement the `VIMVideoPlayerViewDelegate` protocol methods:
|
||
|
||
```Swift
|
||
|
||
protocol VIMVideoPlayerViewDelegate
|
||
{
|
||
optional func videoPlayerViewIsReadyToPlayVideo(videoPlayerView: VIMVideoPlayerView!)
|
||
optional func videoPlayerViewDidReachEnd(videoPlayerView: VIMVideoPlayerView!)
|
||
optional func videoPlayerView(videoPlayerView: VIMVideoPlayerView!, timeDidChange cmTime: CMTime)
|
||
optional func videoPlayerView(videoPlayerView: VIMVideoPlayerView!, loadedTimeRangeDidChange duration: Float)
|
||
optional func videoPlayerViewPlaybackBufferEmpty(videoPlayerView: VIMVideoPlayerView!)
|
||
optional func videoPlayerViewPlaybackLikelyToKeepUp(videoPlayerView: VIMVideoPlayerView!)
|
||
optional func videoPlayerView(videoPlayerView: VIMVideoPlayerView!, didFailWithError error: NSError!)
|
||
}
|
||
|
||
```
|
||
|
||
See [`VIMVideoPlayer.h`](https://github.com/vimeo/VIMVideoPlayer/blob/master/VIMVideoPlayer/VIMVideoPlayer.h) for additional configuration options.
|
||
|
||
## Playing Vimeo Videos
|
||
|
||
[Vimeo Pro](https://vimeo.com/pro) members can access playback URLs for Vimeo videos using the [Vimeo API](https://developer.vimeo.com/). Playback URLs are only included in the response object if the requesting account is a [Vimeo Pro](https://vimeo.com/pro) account.
|
||
|
||
If you have a [Vimeo Pro](https://vimeo.com/pro) account, when you make a request to the [Vimeo API](https://developer.vimeo.com/) for a video object the response object will contain a list of video `files`. These represent the various resolution video files available for this particular video. Each has a `link`. You can use the string value keyed to `link` to create an NSURL. You can pass this NSURL to VIMVideoPlayer for playback.
|
||
|
||
Check out [this](http://stackoverflow.com/questions/31960338/ios-vimvideoplayerview-cant-load-vimeo-videos) Stack Overflow question for additional info.
|
||
|
||
You can use the [Vimeo iOS SDK](https://github.com/vimeo/VIMNetworking) to interact with the [Vimeo API](https://developer.vimeo.com/).
|
||
|
||
For full documentation on the Vimeo API go [here](https://developer.vimeo.com/).
|
||
|
||
## Found an Issue?
|
||
|
||
Please file it in the git [issue tracker](https://github.com/vimeo/VIMVideoPlayer/issues).
|
||
|
||
## Want to Contribute?
|
||
|
||
If you'd like to contribute, please follow our guidelines found in [CONTRIBUTING.md](CONTRIBUTING.md).
|
||
|
||
## License
|
||
|
||
`VIMVideoPlayer` is available under the MIT license. See the [LICENSE](LICENSE.md) file for more info.
|
||
|
||
## Questions?
|
||
|
||
Tweet at us here: [@vimeoapi](https://twitter.com/vimeoapi).
|
||
|
||
Post on [Stackoverflow](http://stackoverflow.com/questions/tagged/vimeo-ios) with the tag `vimeo-ios`.
|
||
|
||
Get in touch [here](https://vimeo.com/help/contact).
|
||
|
||
Interested in working at Vimeo? We're [hiring](https://vimeo.com/jobs)!
|