/** * Test get methods. */ public function testGetMethods() { $now = new \DateTime(); $endTime = new \DateTime('+1 hour'); $broadcast = new LiveBroadcast(); $broadcast->setName('Test'); $broadcast->setDescription('Description of broadcast'); self::assertEquals($now, $broadcast->getStartTimestamp()); self::assertEquals($endTime, $broadcast->getEndTimestamp()); self::assertEquals(new ArrayCollection(), $broadcast->getOutputChannels()); self::assertEquals('Test', $broadcast->getName()); self::assertEquals('Description of broadcast', $broadcast->getDescription()); /* Check default value */ self::assertTrue($broadcast->isStopOnEndTimestamp()); $broadcast->setStopOnEndTimestamp(false); self::assertFalse($broadcast->isStopOnEndTimestamp()); }
/** * @param LiveBroadcast $liveBroadcast * @param OutputFacebook $outputFacebook * @return null|string * @throws LiveBroadcastOutputException */ public function createFacebookLiveVideo(LiveBroadcast $liveBroadcast, OutputFacebook $outputFacebook) { if (!$this->facebookSDK) { $this->initFacebook(); } try { $params = array('title' => $liveBroadcast->getName(), 'description' => $liveBroadcast->getDescription()); $this->facebookSDK->setDefaultAccessToken($outputFacebook->getAccessToken()); $response = $this->facebookSDK->post($outputFacebook->getEntityId() . '/live_videos', $params); } catch (FacebookResponseException $ex) { throw new LiveBroadcastOutputException('Facebook exception: ' . $ex->getMessage()); } catch (FacebookSDKException $ex) { throw new LiveBroadcastOutputException('Facebook SDK exception: ' . $ex->getMessage()); } $body = $response->getDecodedBody(); if (array_key_exists('stream_url', $body)) { return $body['stream_url']; } return null; }
/** * @param LiveBroadcast $liveBroadcast * @param string $privacyStatus * @param string|null $id * @return \Google_Service_YouTube_LiveBroadcast */ protected function setupBroadcast(LiveBroadcast $liveBroadcast, $privacyStatus = 'public', $id = null) { $title = $liveBroadcast->getName(); $description = $liveBroadcast->getDescription(); $start = $liveBroadcast->getStartTimestamp(); $end = $liveBroadcast->getEndTimestamp(); if (new \DateTime() > $start) { $start = new \DateTime(); $start->add(new \DateInterval('PT1S')); } $broadcastSnippet = new \Google_Service_YouTube_LiveBroadcastSnippet(); $broadcastSnippet->setTitle($title); $broadcastSnippet->setDescription($description); $broadcastSnippet->setScheduledStartTime($start->format(\DateTime::ATOM)); $broadcastSnippet->setScheduledEndTime($end->format(\DateTime::ATOM)); $status = new \Google_Service_YouTube_LiveBroadcastStatus(); $status->setPrivacyStatus($privacyStatus); $broadcastInsert = new \Google_Service_YouTube_LiveBroadcast(); if ($id !== null) { $broadcastInsert->setId($id); } $broadcastInsert->setSnippet($broadcastSnippet); $broadcastInsert->setStatus($status); $broadcastInsert->setKind('youtube#liveBroadcast'); return $broadcastInsert; }