Many developers who are new to the Brightcove Video Cloud Player SDK for iOS often ask the very fundamental questions: what is it and why would I use it for my app over Apple's native classes?
Apple's native classes (AVQueuePlayer and MPMoviePlayerController) are great for embedding simple videos in an app. When you want to do something more robust or custom with video, though, the limitation of the native classes showstoppers for many apps. The Player SDK is built on top of existing Apple architecture to help developers handle limitations, and provides the tools to create elegant video experiences.
To provide more detail on this subject, here are the top five reasons to use the Brightcove Video Cloud Player SDK in your app:
- Support for pre-buffering the next item in a video queue. This has become increasing complex with Apple's AVQueuePlayer. Support for pre-buffering is fragmented across different versions of iOS and is lacking for HLS streaming. Pre-buffering the next item in the queue is important for seamless playback enjoyment. Brightcove’s native SDK will handle pre-buffering across different versions of iOS, even iOS 6+.
- Support for loading multiple video types in the queue. AVQueuePlayer will fail to load unless you add the necessary code to destroy, recreate, and manage the queue by checking the movie type. This is a pretty heavy operation that removes all pre-buffered data, so achieving seamless playback with multiple video types is increasingly difficult. Brightcove’s SDK handles this requirement efficiently without recreating any internal objects. Load the Brightcove Player with mp4, mov, HLS streams or a mixture, and the player won't crash. If you have the requirement of handling videos that you don't administer, this is a must-have.
- To have better programmatic control of events and notifications. One of the biggest complaints that I hear about AVQueuePlayer is its lack of granular events. This is one of my favorite features of the Player SDK as there are ~60 events you can listen to and emit. This is the framework you would use to build nice UI controls or have other components integrate with the video player. The event architecture leverages blocks for callbacks. If you have any experience with ruby or python, then you know the power of block usage!
- To integrate with Brightcove Video Cloud and the Media API. This might go without saying, but the SDK has great support for Video Cloud, though a Video Cloud account isn't required to utilize the SDK. Native classes allows you to query your content metadata in Video Cloud to get playlists or videos. These can be integrated into the player quickly and does it asynchronously. Using Video Cloud with the Native Players gives you a single location to manage your videos and playlist.
- Simplified Advertising and Analytics. You could build this out yourself, but why would you? Using the Player SDK, you can easily embed third-party analytics and advertising such as Freewheel and Omniture.
Enough talk; show me the code! Where do I get started?
Code for samples are kept in the following github repository. Check out the SimpleVideoApp sample for a quick and easy demonstration of Brightcove Native Player SDK for iOS. Information on how to download the latest version of the Brightcove Video Cloud Native Player SDK, as well as a getting started guide can be found here.