1. 程式人生 > >用aliplayer如何實現視訊的連續播放?

用aliplayer如何實現視訊的連續播放?

摘要: 場景 假如有多個視訊,在上一個視訊播放完畢時,自動播放下一個視訊,要怎麼處理的呢?需要按使用的播放器型別和切換的地址格式,採用不同的實現方式。 直播地址方式 這種方式最簡單,h5和flash的行為都是一致的,只需要訂閱’ended’, 在ended事件裡,呼叫loadByUrl方法, 引數為下一個視訊的地址。

場景

假如有多個視訊,在上一個視訊播放完畢時,自動播放下一個視訊,要怎麼處理的呢?需要按使用的播放器型別和切換的地址格式,採用不同的實現方式。

直播地址方式

這種方式最簡單,h5和flash的行為都是一致的,只需要訂閱’ended’, 在ended事件裡,呼叫loadByUrl方法, 引數為下一個視訊的地址。

function endedHandle()
{
  var newUrl = "";
  player.loadByUrl(newUrl);
}

player.on("ended", endedHandle);

vid+playauth Saas播放方式

vid和playauth Saas播放方式,h5和flash需要不同的處理方式:

h5在ended事件裡呼叫replayByVidAndPlayAuth方法,引數為vid和新的playauth值。
flash沒有提供切換vid和playauth的方法,需要銷燬,重新建立播放器。
注意:playauth的有效期只有100s, 呼叫replayByVidAndPlayAuth方法時,需要重新生產獲取playauth

H5 Player

function endedHandle()
{
  var newPlayAuth = ""; 
  player.replayByVidAndPlayAuth(vid,newPlayAuth);
}

player.on("ended", endedHandle);

Flash Player

function endedHandle()
{
    var newPlayAuth = ""; 
    player.dispose(); //銷燬
    $('#J_prismPlayer').empty();//id為html裡指定的播放器的容器id
     //重新建立
    player = new
Aliplayer({ id: 'J_prismPlayer', autoplay: true, playsinline:true, vid: vid, playauth:newPlayAuth, useFlashPrism:true }); } } player.on("ended", endedHandle);

地址協議不一樣切換地處理

如果原來播放的是mp4的視訊,現在新的地址是hls的視訊地址,這種情況只能重新建立播放器。

function endedHandle()
{
    var newUrl = ""; //新的播放地址
    player.dispose(); //銷燬
    $('#J_prismPlayer').empty(); //id為html裡指定的播放器的容器id
     //重新建立
    player = new Aliplayer({
              id: 'J_prismPlayer',
              autoplay: true,
              playsinline:true,
              source:newUrl
         });
    }
}

player.on("ended", endedHandle);

作者:樰籬