全部產品
Search
文件中心

ApsaraVideo VOD:Web播放器常見問題

更新時間:Aug 05, 2026

本文針對Web播放器SDK使用過程中常見的問題提出解決方案或規避措施。

License相關問題

License無效、到期等問題請參見License相關常見問題

各端播放器共性問題

開發問題

H5播放器如何切換vid和playauth?

H5播放器直接調用replayByVidAndPlayAuth方法。

 player.replayByVidAndPlayAuth(newVid, newPlayAuth)

replayByVidAndPlayAuth 方法是否觸發 ready 事件?

replayByVidAndPlayAuth 方法會觸發 ready 事件;ready 事件在播放器視頻初始化完成、介面渲染完畢時觸發,此時可安全調用 seek 等方法。可通過以下方式監聽處理:

player.on('ready', function(){...});

如何調整H5播放器播放按鈕的大小和位置?

  • 調整播放按鈕的大小,重寫CSS,比如減小一倍。樣本如下:

     .prism-player .prism-big-play-btn {
        width: 45px;
        height: 45px;
        background-size: 128px 256px;
    }
  • 調整播放按鈕的位置,通過設定skinLayoutbigPlayButton的x,y屬性。

    skinLayout: [
      { name: "bigPlayButton", align: "blabs", x: 30, y: 80 },
      {
        name: "H5Loading",
        align: "cc",
      },
      {
        name: "controlBar",
        align: "blabs",
        x: 0,
        y: 0,
        children: [
          { name: "progress", align: "tlabs", x: 0, y: 0 },
          { name: "playButton", align: "tl", x: 15, y: 26 },
          { name: "timeDisplay", align: "tl", x: 10, y: 24 },
          { name: "fullScreenButton", align: "tr", x: 20, y: 25 },
          { name: "volume", align: "tr", x: 20, y: 25 },
        ],
      },
    ]

調用seek方法後,播放器如何?暫停按鈕?

按鈕狀態取決於播放器原來的狀態,想要實現暫停按鈕,可以在seek後再調用player.pause()方法。

H5播放器如何初始播放位置?

通過 watchStartTime 參數可以指定初始播放位置。

new Aliplayer({
  watchStartTime: 60, // 從第 60 秒開始播放
})

詳情請參見Aliplayer API說明

如何設定自動播放時的自動全屏?

給視頻設定禁音,設定autoplay為true實現自動播放,在監聽ready事件調用fullscreenService.requestFullScreen實現全屏。

var player = new Aliplayer(
  {
    id: "player-con",
    source: "//example.aliyundoc.com/video/media02.mp4",
    width: "100%",
    height: "500px",
    autoplay: true,
    qualitySort: "asc",
    mediaType: "video",
    preload: true,
    isLive: false,
  },
  function (player) {
    player.mute();
    console.log("The player is created");
  }
);
player.on("ready", function () {
  player.fullscreenService.requestFullScreen();
});

如何禁用進度條?

可以使用 disableSeek: true 參數來禁止拖動進度條,請參見禁止拖動進度條

如何定時擷取播放時間?

通過定時器每秒調用播放器的getCurrentTime方法擷取播放時間,在暫停、出錯和結束播放時清除定時器。

var timer = null;

timer = setInterval(() => {
  var current = player.getCurrentTime();
  console.log(current);
}, 1000);

//清除定時器
function clear() {
  if (timer) {
    clearTimeout(timer);
    timer = null;
  }
}
player.on("ended", function (e) {
  clear();
});
player.on("pause", function (e) {
  clear();
});
player.on("error", function (e) {
  clear();
});

Web 播放器 SDK 其他常見使用問題匯總

  • seek 方法精度seek 方法支援浮點數(如 10.5),建議使用向下取整或保留較少小數位以提高相容性。

  • 直播流斷聯重連:支援配置重連次數,若重連後仍無法恢複,建議監聽 error 事件處理,樣本:player.on('error', (e) => { var code = String(e.paramData.error_code); })

  • License Key 與下載功能:播放使用的 License Key 與下載功能不互連,下載基於 app 資訊產生。

  • 控制欄有文字無表徵圖:檢查是否正確引入 aliplayer-min.css;避免同時使用 skinLayoutIgnoreskinLayout(前者優先順序更高會剔除組件);給播放器容器設定固定高度(如 400 px 以上)避免布局塌陷;可參考官方 Vue Demo 比對調試。

  • iOS Flutter 播放器報錯 537067523:設定 TraceID(FlutterAliplayer.setTraceID)便於日誌排查;升級 Flutter 播放器 SDK 至 7.14.0 最佳化網路程式庫;若未使用 阿里雲 CDN,需聯絡對應 CDN 廠商檢查請求日誌。

如何查看及升級 Web 播放器 SDK 版本號碼?

查看方法:檢查專案中引入的 aliplayer-min.js 檔案或其代碼配置中的版本號碼欄位。

升級方法:修改網站語言套件檔案(language.SC_UTF8.phplanguage.SC_GBK.phplanguage.TC_UTF8.phplanguage.TC_BIG5.php)第 30 行的版本號碼變數值,確保 4 個檔案同步修改為新版本號碼(如從 2.27.1 改為 2.37.8)。

說明

待需求方確認(定稿前不發布本條):上述升級方法是否限定於特定網站/CMS 整合方式;如需覆蓋通用讀者,應同時給出替換 aliplayer-min.js/aliplayer-min.css 引用版本號碼(CDN 連結或 npm 包版本)的標準升級步驟。

Aliplayer preload 參數 true 和 false 有什麼區別?

preload: true 表示開啟預先載入,preload: false 表示關閉預先載入。

播放問題與錯誤

經過H.265編碼的視頻無法播放

Web播放器SDK從2.14.0版本開始支援播放H.265編碼協議的視頻流,如需使用此功能,需要申請相應的License授權,並配置參數開啟H.265功能。具體操作,請參見播放H.265/H.266編碼協議視頻流

H5播放器播放FLV、M3U8檔案時提示跨域錯誤

當使用Web播放器出現Access is denied for this document或提示Access-Control-Allow-Origin等相關報錯時,需要啟用播放網域名稱允許跨域訪問。詳細內容,請參見配置跨域訪問

H5播放器無法橫屏

播放器SDK沒有橫屏的介面,iOS橫屏需要系統橫屏,Android全屏之後預設就是橫屏。

H5播放器播放FLV視頻時發起的請求未攜帶Referer

  1. 播放器發起的請求首先遵循您網站設定的Referrer-Policy,請確保您網站的Referrer-Policy為允許視頻請求攜帶Referer。

  2. 如果您網站的Referrer-Policy允許視頻請求攜帶Referer,但是實際請求視頻時沒有攜帶Referer(在開啟Referer ACL存取控制的時候可能會導致播放被禁止),則可以通過傳入播放器參數enableWorker: false來解決。

H5播放器播放視頻時視頻未填滿整個播放器,播放器有黑邊,如何處理?

使用H5播放器播放視頻時出現視頻未填滿整個播放器,播放器有黑邊的情況。常見問題

此黑邊為播放器容器的背景色,可以通過給video標籤設定css屬性object-fit: cover;來解決該問題。

說明

注意:設定該屬性可能導致畫面被裁剪,具體效果可以參考 CSS object-fit 屬性說明。

AliPlayer 初始化報錯 TypeError: Failed to execute 'getComputedStyle' on 'Window' 如何解決?

播放器初始化 controlBar.volume(音量控制項)時,內部 _getBottom() 方法擷取到的 DOM 元素為 null 或非 Element 類型(通常因容器未渲染完成導致),調用 getComputedStyle 時報錯並阻斷後續初始化流程。

解決方案

  • 推薦方案:升級 阿里雲 Web 播放器 SDK 至 2.37.8 及以上版本,該版本已修複此相容性問題。

  • 臨時規避方案:在播放器配置中添加 skinLayoutIgnore: ["controlBar.volume"] 忽略音量控制項初始化;若需保留音量控制項,可在初始化前檢查容器是否存在且 offsetWidth 大於 0,若不滿足則延遲 200 ms 重試初始化。

loadByUrl iOS和Android均無法使用

// seek會只能跳轉,無法播放
// play在iOS上只能從頭播放
// iOS上點全屏播放video會被iOS原生播放器劫持

document.querySelector(".no1").onclick = function () {
  player.loadByUrl("//player.alicdn.com/resource/player/qupai.mp4");
};

// 優先監聽play和canplay事件去seek,有些瀏覽器可能不生效,可以考慮使用在第一次timeupdate的時候去seek
player.on("canplay", function () {
  player.seek(20);
});
// iOS下全屏被劫持,沒有對應處理辦法

切換視訊源,但仍然播放上一條視頻

問題現象:2.9.11版本Web播放器SDK,在Windows10,360瀏覽器安全色模式下,loadByUrl功能異常,切換視訊源仍會播放上一條視頻。

問題原因:瀏覽器安全色問題。

解決方案:請使用2.9.19及以後版本的Web播放器SDK。

player.seek()方法在iOS下失效

需要優先在play事件和canplay事件中調用player.seek()方法,否則可能會不生效。

// 優先在play事件和canplay事件調用seek,否則可能會不生效
player.on("canplay", function () {
  player.seek(20);
});

直播過程中暫停播放後,再次播放時如何趕上最新直播片段

問題描述

直播過程中如果將應用程式切換至後台,暫停播放後,返回應用再次播放時會從暫停時刻繼續播放,如何設定可以減少播放延遲,趕上最新的直播片段。

解決方案

再次播放時,會從您暫停時刻繼續播放,且不能通過參數設定加快播放速度。建議您重新拉流,重新調用播放器播放該直播流。

如何?在微信小程式中使用阿里雲Web播放器播放視頻?

阿里雲Web播放器不支援在微信小程式中運行,您需要使用小程式內建的Video組件去播放視頻。相關Demo請參見微信小程式

直播跨域拉流失敗

如果本地跨域校正失敗,請首先檢查控制台中的網域名稱管理配置頁面。如果僅配置了自有網域名稱,則可能會導致 localhost 報錯;在預設情況下,如果客戶未進行配置,localhost 將會通過校正。

上傳到ApsaraVideo for VOD中的視頻,在其他端都能正常播放,但是在iOS端不能播放

可能原因:iOS端的Safari瀏覽器安全色性不夠,當視頻壓縮比例太高,或視頻的編碼層級為high時,都可能導致Safari瀏覽器無法解碼播放。

解決方案:建議對視頻進行轉碼處理後再播放,詳細操作請參見音視頻轉碼

視頻在部分電腦上無法正常播放,並報錯誤碼4400

錯誤碼4400指示由於伺服器或網路原因不能載入資源,或者格式不支援。請確認是否配置了SSL認證。

平台特定問題

如何移除WebView的預設封面?

問題現象:在部分安卓手機的WebView中,如果沒有為<video>標籤指定poster屬性,WebView會預設展示一個預設封面:WebView 的預設封面表現為灰色背景、中央顯示圓形播放按鈕的視頻播放器初始介面。

解決方案:如果想要移除該預設封面,則可以通過下述方法為<video>標籤指定一個無效的poster屬性來覆蓋這個WebView的預設封面。

extraInfo: { poster: 'noposter' } // 播放器參數 extraInfo 的內容會透傳到 <video> 標籤上

啟用IE瀏覽器以最進階別的可用模式顯示內容

低於IE10的瀏覽器需要啟用最進階別的可用模式顯示內容模式。

<meta http-equiv="x-ua-compatible" content="IE=edge" >

在微信裡如何自動播放?

<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
<script>
function autoPlay() {            
  wx.config({
      // 配置資訊, 即使不正確也能使用 wx.ready
      debug: false,
      appId: '',
      timestamp: 1,
      nonceStr: '',
      signature: '',
      jsApiList: []
  });
  wx.ready(function() {
      var video=$(player.el()).find('video')[0];
      video.play();
  });
};
// 解決ios不自動播放的問題
autoPlay();
</script>

瀏覽器劫持視頻播放說明

在網頁上播放視頻時,大部分情況下是通過瀏覽器實現的,因此瀏覽器對視頻播允許存取為擁有最高的系統管理權限。瀏覽器劫持視頻播放是指使用瀏覽器內建的播放器替換播放器SDK原始的video控制項,並且禁止通過JS、CSS修改,由此會造成播放器的樣式不符合預期、播放器的部分功能無法正常使用、視頻播放時出現多餘的UI和廣告等內容,或者視頻被強制全屏播放等現象。

瀏覽器劫持視頻播放通常出現在移動端瀏覽器中,例如微信、UC瀏覽器、QQ瀏覽器等。以下為您提供瀏覽器劫持視頻播放的一些常見現象及解決方案:

iOS環境下,全屏播放視頻時,無法正常使用彈幕

問題現象:iOS手機上直接使用播放器播放視頻時,可以正常使用彈幕,但在全屏播放時,無法正常使用彈幕。

解決方案:由於video被原生UI接管,且處於最高層級,無法進行UI定製,也無法將彈幕元素置於video之上,可以考慮通過類比全屏的方式實現,即通過設定視頻呈現的高度和寬度,將播放器容器鋪滿整個螢幕,從而實現全屏播放的效果,同時可以正常使用彈幕。