用aliplayer如何實現視訊的連續播放?
阿新 • • 發佈:2019-01-30
摘要: 場景 假如有多個視訊,在上一個視訊播放完畢時,自動播放下一個視訊,要怎麼處理的呢?需要按使用的播放器型別和切換的地址格式,採用不同的實現方式。 直播地址方式 這種方式最簡單,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);
作者:樰籬