オンライン ライブ ブロードキャスト機能を PHP で実装する方法: 1. コンソールでライブ ブロードキャスト クラウド サービスを見つけ、ライブ ブロードキャスト クラウド スペースを作成します; 2. 必要に応じてドメイン名を解析します; 3. Composer をインストールしますパッケージ; 4. liveStart メソッドで実装する ライブブロードキャストするだけです。
この記事の動作環境: Windows 7 システム、PHP バージョン 7.1、Dell G3 コンピューター。
オンラインライブブロードキャスト機能をphpで実装するにはどうすればよいですか?
php Qiniu Cloud はライブ ブロードキャスト機能を実装しています:
1: 現在、ライブ ブロードキャスト販売プロジェクトに取り組んでいます。背景はセットアップされ、準備ができています。アリババ、テキサス州、Qiniu を検索したところ、アリババのライブ ブロードキャスト PHP にはコードのみがあり、ドキュメントはありませんでした。テキサス州の友人はコードが汚いと言っていたので、検討しませんでした。 Qiniuにアカウントを登録しましたが、ライブブロードキャストスペースに申請したところ、ドメイン名でブロックされました。カード所有者がスタックしました。すでに登録されているドメイン名をWebサイトの公安に登録する必要がありますまたまた
https://developer.qiniu.com/af/kb/3987/how-to-make-website-and-inquires-the-police-put-on-record-information?ref=support.qiniu.com
再度調べてみたところ、オンライン公演事業に関わる場合は「インターネット文化事業許可証」の申請が必要とのことです。地方人民政府文化行政部門に相談し、申請をお待ちください。次のステップに進む前に完了する必要があります。
2: ドメイン名の登録の準備がついに完了しました。ライブ ブロードキャスト機能を実装するための 2 番目のステップを開始しましょう。モバイル端末 Niuyun SDK のセブンを参照してください。以下はサーバーサイド プッシュ ストリーミングの例です。今回は、rtmp ストリームを使用してライブ ブロードキャストを実装します。コンソールでライブ ブロードキャスト クラウド サービスを見つけて、ライブ ブロードキャスト クラウド スペースを作成します。 .
は、ライブ ブロードキャスト スペースの作成後に生成されます。いくつかの第 2 レベル ドメイン名が必要に応じてドメイン名を解析すると、次のようになります。 ## コードを実行すると、ライブ ストリームで作成したライブ ストリームの再生履歴やその他の情報が表示されます
コンポーザー パッケージをインストールします
php composer.phar require qiniu/php-sdk2 つあります。 Vendor/pili-engineering/pili-sdk-php.v2 のケース、1 つはライブ ブロードキャスト、もう 1 つは連続小麦です。今回は最初にライブ ブロードキャストを実装し、次の記事で Lianmai を更新します
<?php namespace App\Modules\Api\Http\Controllers; use App\Modules\Live\Models\Broadcast; use App\Modules\Live\Repositories\BroadcastRepositoryEloquent; use Illuminate\Http\Request; use Qiniu\Pili\Client; use Qiniu\Pili\Mac; use function Qiniu\Pili\RTMPPlayURL; use function Qiniu\Pili\RTMPPublishURL; use function Qiniu\Pili\SnapshotPlayURL; class LiveController extends ApiBaseController { private $auth; private $accessKey; private $secretKey; private $hubName; /** * Create a new controller instance. * * @return void */ public function __construct() { $this->accessKey = config("qiniu.accessKey"); $this->secretKey = config("qiniu.secretKey"); $this->hubName = config("qiniu.bucket"); parent::__construct(); } /** *开启直播 */ public function liveStart(Request $request) { $userInfo = parent::getAuthenticatedUser($msg); if (isset($userInfo['user']) && !empty($userInfo['user'])) { $request->offsetSet('user_id', $userInfo['user']['id']); } else { return $this->sendResponse($msg, 'error', '', 401); } $data = $request->all(); $broadcast = app(BroadcastRepositoryEloquent::class)->findWhere(['type' => $data['type'], 'user_id' => $data['user_id']])->first(); if (empty($broadcast)) { return $this->sendResponse(trans('admin.operate_failed') . '未找到直播间'); } $broadcast['name'] = $data['name']; //创建hub $mac = new Mac($this->accessKey, $this->secretKey); $client = new Client($mac); $hub = $client->hub($this->hubName); //获取stream $streamKey = $broadcast['show_id']; $stream = $hub->stream($streamKey); $list = $hub->listStreams($streamKey, 1, ""); //如果没找到对应的直播流创建新直播流 if (count($list['keys']) == 0) { //获取stream $hub->create($streamKey); } if ($data['type'] == 0) { $result = $this->updateShop($broadcast, $streamKey, $msg); if ($result == false) { return $this->sendResponse(trans('admin.operate_failed') . $msg); } } else { $result = $this->updateCurriculum($broadcast, $streamKey, $msg); if ($result == false) { return $this->sendResponse(trans('admin.operate_failed') . $msg); } } return $this->sendResponse(trans('admin.operate_succeeded'), 'succ', ['p_href' => $broadcast['p_href']]); } //更新商城直播间 public function updateShop($broadcast, $streamKey, &$msg = '') { //获取推流地址 $p_href = RTMPPublishURL("pili-publish.chengdulihong.com", $this->hubName, $streamKey, 3600, $this->accessKey, $this->secretKey); //获取播放地址 $g_href = RTMPPlayURL("pili-publish.chengdulihong.com", $this->hubName, $streamKey); //截图直播地址 $pic = SnapshotPlayURL("pili-publish.chengdulihong.com", $this->hubName, $streamKey); //更新直播间状态 $u_broadcast = $broadcast->fill(['name' => $broadcast['name'], 'chatroom_status' => 0, 'p_href' => $p_href, 'g_href' => $g_href, 'pic' => $pic])->save(); if ($u_broadcast == false) { return $this->sendResponse(trans('admin.operate_failed') . '更新直播间出错'); } return true; }推奨学習: 「
PHP ビデオ チュートリアル
」以上がオンラインライブブロードキャスト機能をphpで実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。