Ejemplo n.º 1
0
 /**
  * @param string      $streamName
  * @param int         $streamChannelType
  * @param int         $serverId
  * @param string|null $mediaId
  * @return CM_Model_StreamChannel_Abstract
  * @throws CM_Exception_Invalid
  */
 public function createStreamChannel($streamName, $streamChannelType, $serverId, $mediaId = null)
 {
     if (null !== $mediaId) {
         $mediaId = (string) $mediaId;
         if (null !== CM_Model_StreamChannelArchive_Media::findByMediaId($mediaId)) {
             throw new CM_Exception_Invalid('Channel archive with this mediaId already exists', null, ['mediaId' => $mediaId]);
         }
     }
     return CM_Model_StreamChannel_Abstract::createType($streamChannelType, ['key' => $streamName, 'adapterType' => $this->_adapterType, 'serverId' => (int) $serverId, 'mediaId' => $mediaId]);
 }
Ejemplo n.º 2
0
Archivo: TH.php Proyecto: aladin1394/CM
 /**
  * @param int|null $type
  * @param int|null $adapterType
  * @return CM_Model_StreamChannel_Abstract
  */
 public static function createStreamChannel($type = null, $adapterType = null)
 {
     if (null === $type) {
         $type = CM_Model_StreamChannel_Video::getTypeStatic();
     }
     if (null === $adapterType) {
         $adapterType = CM_Stream_Adapter_Video_Wowza::getTypeStatic();
     }
     $data = array('key' => rand(1, 10000) . '_' . rand(1, 100));
     if (CM_Model_StreamChannel_Video::getTypeStatic() == $type) {
         $data['width'] = 480;
         $data['height'] = 720;
         $data['serverId'] = 1;
         $data['thumbnailCount'] = 0;
         $data['adapterType'] = $adapterType;
     }
     return CM_Model_StreamChannel_Abstract::createType($type, $data);
 }
Ejemplo n.º 3
0
 public function testCreate()
 {
     $streamChannel = CM_Model_StreamChannel_Abstract::createType(CM_Model_StreamChannel_Message::getTypeStatic(), array('key' => 'foo1', 'adapterType' => CM_MessageStream_Adapter_SocketRedis::getTypeStatic()));
     $this->assertInstanceOf('CM_Model_StreamChannel_Message', $streamChannel);
     try {
         CM_Model_StreamChannel_Abstract::createType(CM_Model_StreamChannel_Message::getTypeStatic(), array('key' => 'foo1', 'adapterType' => CM_MessageStream_Adapter_SocketRedis::getTypeStatic()));
         $this->fail();
     } catch (CM_Db_Exception $e) {
         $this->assertContains('Duplicate entry', $e->getMessage());
     }
     CM_Model_StreamChannel_Abstract::createType(CM_Model_StreamChannel_Message::getTypeStatic(), array('key' => 'foo1', 'adapterType' => 2));
 }
Ejemplo n.º 4
0
 public function testCreate()
 {
     /** @var CM_Model_StreamChannel_Abstract $streamChannel */
     $streamChannel = CM_Model_StreamChannel_Abstract::createType(CM_Model_StreamChannel_Message::getTypeStatic(), array('key' => 'foo1', 'adapterType' => CM_MessageStream_Adapter_SocketRedis::getTypeStatic()));
     $this->assertInstanceOf('CM_Model_StreamChannel_Message', $streamChannel);
     $this->assertSame('foo1', $streamChannel->getKey());
     $this->assertEquals(CM_MessageStream_Adapter_SocketRedis::getTypeStatic(), $streamChannel->getAdapterType());
     $this->assertSame(time(), $streamChannel->getCreateStamp());
     /** @var CM_Model_StreamChannel_Abstract $channel1 */
     $channel1 = CM_Model_StreamChannel_Abstract::createType(CM_Model_StreamChannel_Message::getTypeStatic(), ['key' => 'foo', 'adapterType' => CM_MessageStream_Adapter_SocketRedis::getTypeStatic()]);
     /** @var CM_Model_StreamChannel_Abstract $channel2 */
     $channel2 = CM_Model_StreamChannel_Abstract::createType(CM_Model_StreamChannel_Message::getTypeStatic(), ['key' => 'foo', 'adapterType' => CM_MessageStream_Adapter_SocketRedis::getTypeStatic()]);
     $this->assertInstanceOf('CM_Model_StreamChannel_Message', $channel1);
     $this->assertInstanceOf('CM_Model_StreamChannel_Message', $channel2);
     $this->assertSame($channel1->getId(), $channel2->getId());
     $this->assertSame($channel1->getCreateStamp(), $channel2->getCreateStamp());
 }
Ejemplo n.º 5
0
 /**
  * @param string $streamName
  * @param string $clientKey
  * @param int    $start
  * @param int    $width
  * @param int    $height
  * @param int    $serverId
  * @param string $data
  * @throws CM_Exception
  * @throws CM_Exception_NotAllowed
  * @return int
  */
 public function publish($streamName, $clientKey, $start, $width, $height, $serverId, $data)
 {
     $streamName = (string) $streamName;
     $clientKey = (string) $clientKey;
     $start = (int) $start;
     $width = (int) $width;
     $height = (int) $height;
     $serverId = (int) $serverId;
     $data = (string) $data;
     $params = CM_Params::factory(CM_Params::jsonDecode($data), true);
     $streamChannelType = $params->getInt('streamChannelType');
     $session = new CM_Session($params->getString('sessionId'));
     $user = $session->getUser(true);
     /** @var CM_Model_StreamChannel_Abstract $streamChannel */
     $streamChannel = CM_Model_StreamChannel_Abstract::createType($streamChannelType, array('key' => $streamName, 'adapterType' => $this->getType(), 'params' => $params, 'width' => $width, 'height' => $height, 'serverId' => $serverId, 'thumbnailCount' => 0));
     try {
         CM_Model_Stream_Publish::createStatic(array('streamChannel' => $streamChannel, 'user' => $user, 'start' => $start, 'key' => $clientKey));
     } catch (CM_Exception $ex) {
         $streamChannel->delete();
         throw new CM_Exception_NotAllowed('Cannot publish: ' . $ex->getMessage());
     }
     return $streamChannel->getId();
 }
Ejemplo n.º 6
0
Archivo: TH.php Proyecto: cargomedia/cm
 /**
  * @param int|null    $type
  * @param int|null    $adapterType
  * @param string|null $mediaId
  * @return CM_Model_StreamChannel_Abstract
  */
 public static function createStreamChannel($type = null, $adapterType = null, $mediaId = null)
 {
     if (null === $type) {
         $type = CM_Model_StreamChannel_Media::getTypeStatic();
     }
     if (null === $adapterType) {
         $adapterType = CM_Janus_Service::getTypeStatic();
     }
     $data = array('key' => rand(1, 10000) . '_' . rand(1, 100));
     $className = CM_Model_Abstract::getClassName($type);
     if ('CM_Model_StreamChannel_Media' === $className || is_subclass_of($className, 'CM_Model_StreamChannel_Media')) {
         $mediaId = null !== $mediaId ? (string) $mediaId : null;
         $data['width'] = 480;
         $data['height'] = 720;
         $data['serverId'] = 1;
         $data['adapterType'] = $adapterType;
         $data['mediaId'] = $mediaId;
     }
     return CM_Model_StreamChannel_Abstract::createType($type, $data);
 }