Objective-C

 

NOTE: Objective-C support is deprecated, and is scheduled to be removed in the next version (2.60.0). Please update to the Swift API. If you have questions, please contact our support team.

 

1. Getting Started

Using the THEOplayer iOS SDK is possible through the following steps:

  1. In the target's General tab, in the Embedded Binaries click (+) and select the THEOplayerSDK.framework
  2. Import the framework in your view controller
    #import <THEOplayerSDK/THEOplayerSDK-Swift.h>
  3. Declare a player variable and initialize it
    THEOplayer *player =  [[THEOplayer alloc] initWithConfiguration:nil];
  4. Position and size your player
    [player setBounds:CGRectMake(0, 0, 320, 180)];
    CGSize screenBounds = UIScreen.mainScreen.bounds;
    [player setCenter:CGPointMake(screenBounds.width/2, screenBounds.height/2)];
  5. Add the player to your controller's view hierarchy
    [player addAsSubviewOf:controller.view];
  6. Set a source to the player
    [TypedSource *typedSource = [[TypedSource alloc] initWithSrc:@"https://www.examples.com/index.m3u8" type:@"application/x-mpegurl"];
    SourceDescription *source = [[SourceDescription alloc] initWithSources:typedSource ads:NULL textTracks:NULL poster:NULL analytics:NULL metadata:NULL];
    player.source = source;

 

2. Interoperability Swift/Objective-C

Since THEOplayer iOS SDK is a Swift framework, it is possible to integrate it into an Objective-C project. To be accessible and usable in Objective-C a Swift class must be a descendant of an Objective-C class. Except for Swift-only features such as Generics, Non-Int Enumerations, Structures, etc. That's why the complete THEOplayer iOS SDK API is not accessible and usable directly in Objective-C.

However, you can still use the complete THEOplayer API in your Objective-C project through Swift code thanks to the the mix and match feature. From Apple documentation: "Using mix and match, you can implement part of your app’s functionality using the latest Swift features and seamlessly incorporate it back into your existing Objective-C codebase."

Listen to events in an Objective-C app

Adding event listeners is one of the features that are not available in Objective-C code. Here's an example of how you can listen to an event in your Objective-C app through Swift code.

  1. Create a Swift file that contains a Swift class with a THEOplayer property. This class should be available in Objective-C, so it should extend an Objective-C class, here NSObject.
    @objc class SwiftCode : NSObject {
        var player : THEOplayer
        
        init(player : THEOplayer) {
            
            self.player = THEOplayer()
            
            super.init()
        }
    }
    
  2. Create a method to add some event listeners.
    func addEventListeners() {
         _ = player.addEventListener(type: PlayerEventTypes.PLAY, listener: handleEvent)
         _ = player.addEventListener(type: PlayerEventTypes.PAUSE, listener: handleEvent)
    }
    
    func handleEvent (event : CurrentTimeEvent) {
         // Do something with the event
        print("Received \(event.type) event")
    }
    
  3. Import the Xcode-generated header file for your Swift code into any Objective-C .m file you want to use your Swift code from.
    #import "YourProductName-Swift.h"
    
  4. Finally, in your Objective-C code, instanciate the Swift class and its addEventListeners method.
    var swiftCode = [[SwiftCode alloc] init];
    [self.swiftCode addEventListeners];
    

 

You can learn more about Interopability and Swift type compatibility on the Apple documentation.