Edusoho網校對接阿里雲視頻vod實現CDN雲視頻加速播放OSS

操作系統: Linux 推薦使用Ubuntu,CentOS
Web服務器: 推薦Nginx或Apache2
MYSQL數據庫: 推薦5.5及以上版本

主要文件目錄結構說明

目錄 說明
App 應用程序核心目錄
App/cache 緩存目錄
App/DoctrineMigrations 數據庫更新腳本目錄
App/config 配置文件目錄
App/data 該目錄下存放的是私有的文件課時的視頻、音頻等
App/logs 程序日誌
doc 文檔目錄,包含apache和nginx的配置文件
plugins 插件目錄
src 源代碼目錄
Src/Topxia/WebBundle 前臺界面代碼目錄
Src/Topxia/AdminBundle 管理後臺界面代碼目錄
Src/Topxia/Service 核心業務代碼目錄
Src/Topxia/DataTag 模板標籤目錄
Src/Topxia/Common 程序通用類目錄
Vendor 程序依賴的第三方庫
Vendor_user 程序依賴的第三方應用中心類庫
web web資源根目錄
Web/app_dev.php 開發環鏡下程序主入口文件
Web/bundles 程序前後臺資源文件
Web/themes 程序主題目錄

系統主要業務邏輯模塊說明

模塊文件地址 說明
Src/Topxia/Service/Course/CourseService 課程核心服務
Src/Topxia/Service/Course/MaterialService 課程資料服務
Src/Topxia/Service/Course/NoteService 課程筆記服務
Src/Topxia/Service/Course/ReviewService 課程評價
Src/Topxia/Service/Course/ThreadService 課程討論區服務,含話題及問答
Src/Topxia/Service/User/UserService 用戶服務
Src/Topxia/Service/User/MessageService 私信服務
Src/Topxia/Service/User/NotificationService 系統通知服務
Src/Topxia/Service/Taxonomy/CategoryService 分類服務
Src/Topxia/Service/Taxonomy/TagService 標籤服務
Src/Topxia/Service/System/LogService 日誌服務
Src/Topxia/Service/System/SettingService 系統設置服務
Src/Topxia/Service/Testpaper/TestpaperService 題庫服務

需要引入阿里視頻點播的包,官方api裏提供的有;

AccessKey(訪問密鑰)

AccessKey,簡稱 AK,指的是訪問身份驗證中用到的 AccessKeyId 和AccessKeySecret。VOD 通過使用 AccessKeyId 和 AccessKeySecret 對稱加密的方法來驗證某個請求的發送者身份。AccessKeyId 用於標識用戶,AccessKeySecret 是用戶用於加密簽名字符串和 VOD 用來驗證簽名字符串的密鑰,其中 AccessKeySecret 必須保密。

創建AccessKey具體步驟如下:

  1. 登錄RAM管理控制檯,選擇用戶管理
  2. 單擊目標用戶,進入用戶詳情頁面
  3. 單擊創建AccessKey
  4. 單擊AccessKey詳情下拉箭頭,查看AccessKeyId和AccessKeySecret。
  5. 單擊保存AK信息,下載AccessKey信息。

上傳流程

 aliyun-php-sdk-core這個文件包是公共類包

<?php
require_once VENDOR_PATH.'/aliyun-php-sdk/aliyun-php-sdk-core/Config.php';   // 我的源碼文件和aliyun-php-sdk不處於同一目錄
use vod\Request\V20170321 as vod;
/*
 * 的登錄頁模板
 */
class LoginAction extends Action {  
    public function init_vod_client($accessKeyId, $accessKeySecret) {
         $regionId = 'cn-shanghai';  // 點播服務所在的Region,國內請填cn-shanghai,不要填寫別的區域
         $profile = DefaultProfile::getProfile($regionId, $accessKeyId, $accessKeySecret);
         return new DefaultAcsClient($profile);
    }
    //獲取播放地址
    public function get_play_info($client, $videoId) {
         $request = new vod\GetPlayInfoRequest();
         $request->setVideoId($videoId);
         $request->setAuthTimeout(3600*24);    // 播放地址過期時間(只有開啓了URL鑑權才生效),默認爲3600秒,支持設置最小值爲3600秒
         $request->setAcceptFormat('JSON');
         return $client->getAcsResponse($request);
         // 注意捕獲異常
//       try {
//           $client = init_vod_client('<您的AccessKeyId>', '<您的AccessKeySecret>');
//           $playInfo = get_play_info($client, '您的videoId');
//           var_dump($playInfo);
//       } catch (Exception $e) {
//           print $e->getMessage()."\n";
//       }
    }
    public function login()                                  //登錄頁
    {
         $client = $this->init_vod_client('<您的AccessKeyId> ', '<您的AccessKeySecret ');
         $playInfo = $this->get_play_info($client, '您的videoId ');
         $re = json_decode(json_encode($playInfo),true);
         $this->vodurl = $re['PlayInfoList']['PlayInfo'][1]['PlayURL'];
         $this->display();
    }

1、在後臺上傳好課程後,可以在您購買的阿里雲空間裏面看到你剛上傳的視頻,

2、在網站上點擊播放一個視頻。可以看到視頻的鏈接是阿里雲 alicdn.com 可以看到視頻已經實現阿里雲CDN加速播放了 

 

3、完美支持手機播放對接

 

如果大家的edusoho對接阿里雲視頻有什麼問題的話可以聯繫我Q 儘量可以幫到大家處理這問題 978312440

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章