one($id); $config = Dever::db('live/info')->one($info['live_id']); $method = $this->method($config); $stream = $method->start($info['key']); } # 禁播 public function stop($id) { $info = Dever::db('live/stream')->one($id); $config = Dever::db('live/info')->one($info['live_id']); $method = $this->method($config); $stream = $method->stop($info['key']); } # 保存 public function save($id) { $info = Dever::db('live/stream')->one($id); $config = Dever::db('live/info')->one($info['live_id']); $method = $this->method($config); return $method->save($info['key']); } # 初始化流 public function init($id, $name = '') { $info = Dever::db('live/stream')->one($id); if ($info['url_rtmp']) { return; } if ($name) { $info['key'] = $name; } return $this->get($info); } # 获取流信息 定时跑 public function get($info) { if (!is_array($info)) { $info = Dever::db('live/stream')->one($info); } $config = Dever::db('live/info')->one($info['live_id']); $method = $this->method($config); $rtmp = $method->getRtmp($info['key'], $info['times'] * 3600); $url = $method->getPlay($info['key']); $stream = $method->getInfo($info['key']); $live = array(); $hitory = array(); try { $live = $method->getLiveStatus($info['key']); $hitory = $method->history($info['key']); } catch (\Exception $e) { $live = array(); $hitory = array(); } $data['where_id'] = $info['id']; $data['live'] = $rtmp; $data['url_rtmp'] = $url['rtmp']; $data['url_hls'] = $url['hls']; $data['url_hdl'] = $url['hdl']; $data['url_pic'] = $url['pic']; $live = Dever::json_decode($info['info']); $live['info'] = $stream; $live['live'] = $live; $live['hitory'] = $history; if ($live) { $data['status'] = 2; } else { $data['status'] = 1; } $data['info'] = Dever::json_encode($live); Dever::db('live/stream')->update($data); return $data; } }