This is an Object/Class which lets you add a background video to iOS app views. This is seen at login views of some famous apps like Spotify, tumbler and Vimeo
Creates an AVPlayer object for you and plays a video from your app bundle
Handles video looping
Handles app going to background and coming back to foreground
Handles seguing away and back again to the view that plays the video
Mutes the video and does not allow it to interrupt other audio services. For example, it does not stop music playing from your music app or a VoIP call
Drag and drop BackgroundVideo.swift
file to your Project navigator
Drag and drop the video to your project and make sure to check Copy items if needed
as well as Add to targets
(This is because the object will look at your app's main bunddle)
Go to the view controller where you want to display the video and declare an instance.
var backgroundPlayer : BackgroundVideo? // Declare an instance of BackgroundVideo called backgroundPlayer
In your viewDidLoad()
method, initialize your instance with the view controller you're using and the name of the video file with it's extension
as parameters (make sure you seperate your name and extension by a period). In the following code I'm passing the same view controller where I declared my instance, namely self
. Then, just call the function setUpBackground()
on your instance.
override func viewDidLoad() { super.viewDidLoad() // Initializing your instance backgroundPlayer = BackgroundVideo(onViewController: self, withVideoURL: "test.mp4") // Passing self and video name with extension backgroundPlayer?.setUpBackground() }
BackgroundVideo.swift
, drag and drop BackgroundVideoObjC.h
and BackgroundVideoObjC.m
. Go to the view controller where you want to display the video and declare an instance.
@property (strong, nonatomic) BackgroundVideoObjC *backgroundVideo;
Same as 5 from Swift steps, except use this code:
- (void)viewDidLoad { self.backgroundVideo = [[BackgroundVideoObjC alloc] initOnViewController:self withVideoURL:@"test.mp4"]; [self.backgroundVideo setUpBackground]; }