Search in sources :

Example 11 with Event

use of com.brightcove.player.event.Event in project android-player-samples by BrightcoveOS.

the class MainActivityTest method testAdPauseResume.

/**
     * Test pausing and resuming during ad playback.
     */
public void testAdPauseResume() throws InterruptedException {
    final CountDownLatch latch = new CountDownLatch(1);
    eventEmitter.on(EventType.AD_STARTED, new EventListener() {

        @Override
        public void processEvent(Event event) {
            Instrumentation instrumentation = MainActivityTest.this.getInstrumentation();
            instrumentation.callActivityOnPause(mainActivity);
            Log.v(TAG, "paused");
            instrumentation.callActivityOnResume(mainActivity);
            hasResumed = true;
            Log.v(TAG, "resumed");
        }
    });
    eventEmitter.on(EventType.AD_COMPLETED, new EventListener() {

        @Override
        public void processEvent(Event event) {
            latch.countDown();
        }
    });
    assertTrue("Timeout occurred.", latch.await(1, TimeUnit.MINUTES));
    assertTrue("Should have resumed.", hasResumed);
}
Also used : Event(com.brightcove.player.event.Event) Instrumentation(android.app.Instrumentation) EventListener(com.brightcove.player.event.EventListener) CountDownLatch(java.util.concurrent.CountDownLatch)

Example 12 with Event

use of com.brightcove.player.event.Event in project android-player-samples by BrightcoveOS.

the class MainActivityTest method setUp.

@Override
protected void setUp() throws Exception {
    super.setUp();
    setActivityInitialTouchMode(false);
    mainActivity = getActivity();
    brightcoveVideoView = (BrightcoveVideoView) mainActivity.findViewById(R.id.brightcove_video_view);
    eventEmitter = brightcoveVideoView.getEventEmitter();
    eventEmitter.once(EventType.DID_SET_VIDEO, new EventListener() {

        @Override
        public void processEvent(Event event) {
            brightcoveVideoView.start();
        }
    });
}
Also used : Event(com.brightcove.player.event.Event) EventListener(com.brightcove.player.event.EventListener)

Example 13 with Event

use of com.brightcove.player.event.Event in project android-player-samples by BrightcoveOS.

the class MainActivityTest method testPlaybackPauseResume.

/**
     * Test pausing and resuming during content playback.
     */
public void testPlaybackPauseResume() throws InterruptedException {
    final CountDownLatch latch = new CountDownLatch(1);
    eventEmitter.on(EventType.PROGRESS, new EventListener() {

        @Override
        public void processEvent(Event event) {
            if (!hasResumed) {
                if (event.getIntegerProperty(Event.PLAYHEAD_POSITION) > 5000) {
                    // Using a new thread, so we aren't sleeping the main thread.
                    new Thread() {

                        public void run() {
                            Instrumentation instrumentation = MainActivityTest.this.getInstrumentation();
                            instrumentation.callActivityOnPause(mainActivity);
                            Log.v(TAG, "paused");
                            MainActivityTest.this.sleep();
                            instrumentation.callActivityOnResume(mainActivity);
                            hasResumed = true;
                            Log.v(TAG, "resumed");
                        }
                    }.start();
                }
            } else {
                playheadPosition = event.getIntegerProperty(Event.PLAYHEAD_POSITION);
                latch.countDown();
            }
        }
    });
    assertTrue("Timeout occurred.", latch.await(1, TimeUnit.MINUTES));
    assertTrue("Should have resumed.", hasResumed);
    assertTrue("Should not have repeated first five seconds: " + playheadPosition, playheadPosition > 5000);
}
Also used : Event(com.brightcove.player.event.Event) Instrumentation(android.app.Instrumentation) EventListener(com.brightcove.player.event.EventListener) CountDownLatch(java.util.concurrent.CountDownLatch)

Example 14 with Event

use of com.brightcove.player.event.Event in project android-player-samples by BrightcoveOS.

the class MainActivity method setupGoogleIMA.

/**
     * Setup the Brightcove IMA Plugin: add some cue points; establish a factory object to
     * obtain the Google IMA SDK instance.
     */
private void setupGoogleIMA() {
    // Defer adding cue points until the set video event is triggered.
    eventEmitter.on(EventType.DID_SET_SOURCE, new EventListener() {

        @Override
        public void processEvent(Event event) {
            setupCuePoints((Source) event.properties.get(Event.SOURCE));
        }
    });
    // Establish the Google IMA SDK factory instance.
    final ImaSdkFactory sdkFactory = ImaSdkFactory.getInstance();
    // Enable logging of ad starts.
    eventEmitter.on(EventType.AD_STARTED, new EventListener() {

        @Override
        public void processEvent(Event event) {
            Log.v(TAG, event.getType());
        }
    });
    // Enable logging of any failed attempts to play an ad.
    eventEmitter.on(GoogleIMAEventType.DID_FAIL_TO_PLAY_AD, new EventListener() {

        @Override
        public void processEvent(Event event) {
            Log.v(TAG, event.getType());
        }
    });
    // Enable logging of ad completions.
    eventEmitter.on(EventType.AD_COMPLETED, new EventListener() {

        @Override
        public void processEvent(Event event) {
            Log.v(TAG, event.getType());
        }
    });
    // Set up a listener for initializing AdsRequests. The Google IMA plugin emits an ad
    // request event in response to each cue point event.  The event processor (handler)
    // illustrates how to play ads back to back.
    eventEmitter.on(GoogleIMAEventType.ADS_REQUEST_FOR_VIDEO, new EventListener() {

        @Override
        public void processEvent(Event event) {
            // Create a container object for the ads to be presented.
            AdDisplayContainer container = sdkFactory.createAdDisplayContainer();
            container.setPlayer(googleIMAComponent.getVideoAdPlayer());
            container.setAdContainer(brightcoveVideoView);
            // Populate the container with the companion ad slots.
            ArrayList<CompanionAdSlot> companionAdSlots = new ArrayList<CompanionAdSlot>();
            CompanionAdSlot companionAdSlot = sdkFactory.createCompanionAdSlot();
            ViewGroup adFrame = (ViewGroup) findViewById(R.id.ad_frame);
            companionAdSlot.setContainer(adFrame);
            companionAdSlot.setSize(adFrame.getWidth(), adFrame.getHeight());
            companionAdSlots.add(companionAdSlot);
            container.setCompanionSlots(companionAdSlots);
            // Build the list of ad request objects, one per ad, and point each to the ad
            // display container created above.
            ArrayList<AdsRequest> adsRequests = new ArrayList<AdsRequest>(googleAds.length);
            for (String adURL : googleAds) {
                AdsRequest adsRequest = sdkFactory.createAdsRequest();
                adsRequest.setAdTagUrl(adURL);
                adsRequest.setAdDisplayContainer(container);
                adsRequests.add(adsRequest);
            }
            // Respond to the event with the new ad requests.
            event.properties.put(GoogleIMAComponent.ADS_REQUESTS, adsRequests);
            eventEmitter.respond(event);
        }
    });
    // Create the Brightcove IMA Plugin and register the event emitter so that the plugin
    // can deal with video events.
    googleIMAComponent = new GoogleIMAComponent(brightcoveVideoView, eventEmitter);
}
Also used : ViewGroup(android.view.ViewGroup) GoogleIMAComponent(com.brightcove.ima.GoogleIMAComponent) ArrayList(java.util.ArrayList) CompanionAdSlot(com.google.ads.interactivemedia.v3.api.CompanionAdSlot) Source(com.brightcove.player.model.Source) AdsRequest(com.google.ads.interactivemedia.v3.api.AdsRequest) AdDisplayContainer(com.google.ads.interactivemedia.v3.api.AdDisplayContainer) Event(com.brightcove.player.event.Event) ImaSdkFactory(com.google.ads.interactivemedia.v3.api.ImaSdkFactory) EventListener(com.brightcove.player.event.EventListener)

Example 15 with Event

use of com.brightcove.player.event.Event in project android-player-samples by BrightcoveOS.

the class GoogleCastComponentTest method setUp.

/**
     * Initialize Robotium, the BrightcoveVideoView and the EventEmitter.
     * Start media playback.
     * @throws Exception
     */
@Override
protected void setUp() throws Exception {
    super.setUp();
    setActivityInitialTouchMode(true);
    castActivity = getActivity();
    solo = new Solo(getInstrumentation(), castActivity);
    brightcoveVideoView = (BrightcoveVideoView) castActivity.findViewById(R.id.brightcove_video_view);
    eventEmitter = brightcoveVideoView.getEventEmitter();
    final CountDownLatch countDownLatch = new CountDownLatch(2);
    eventEmitter.once(EventType.DID_SET_VIDEO, new EventListener() {

        @Override
        public void processEvent(Event event) {
            brightcoveVideoView.start();
            countDownLatch.countDown();
        }
    });
    eventEmitter.once(EventType.DID_PLAY, new EventListener() {

        @Override
        public void processEvent(Event event) {
            assertTrue("BrightcoveVideoView is playing.", brightcoveVideoView.isPlaying());
            countDownLatch.countDown();
        }
    });
    assertTrue("Timeout occurred.", countDownLatch.await(1, TimeUnit.MINUTES));
}
Also used : Solo(com.robotium.solo.Solo) Event(com.brightcove.player.event.Event) EventListener(com.brightcove.player.event.EventListener) CountDownLatch(java.util.concurrent.CountDownLatch)

Aggregations

Event (com.brightcove.player.event.Event)20 EventListener (com.brightcove.player.event.EventListener)20 Video (com.brightcove.player.model.Video)6 CountDownLatch (java.util.concurrent.CountDownLatch)6 ViewGroup (android.view.ViewGroup)5 ArrayList (java.util.ArrayList)5 List (java.util.List)5 FreeWheelController (com.brightcove.freewheel.controller.FreeWheelController)4 GoogleIMAComponent (com.brightcove.ima.GoogleIMAComponent)4 AdDisplayContainer (com.google.ads.interactivemedia.v3.api.AdDisplayContainer)4 AdsRequest (com.google.ads.interactivemedia.v3.api.AdsRequest)4 ImaSdkFactory (com.google.ads.interactivemedia.v3.api.ImaSdkFactory)4 IAdContext (tv.freewheel.ad.interfaces.IAdContext)4 IConstants (tv.freewheel.ad.interfaces.IConstants)4 ISlot (tv.freewheel.ad.interfaces.ISlot)4 AdRequestConfiguration (tv.freewheel.ad.request.config.AdRequestConfiguration)3 NonTemporalSlotConfiguration (tv.freewheel.ad.request.config.NonTemporalSlotConfiguration)3 TemporalSlotConfiguration (tv.freewheel.ad.request.config.TemporalSlotConfiguration)3 VideoAssetConfiguration (tv.freewheel.ad.request.config.VideoAssetConfiguration)3 Instrumentation (android.app.Instrumentation)2