在我的Deezer InApp中,当我使用非零偏移调用DZ.player.playAlbum
方法时,例如DZ.player.playAlbum(10008268, true, 0, 13)
,播放从Deezer桌面网站上的给定偏移量开始,但在移动应用程序(Android和iOS)中,播放从头开始。移动设备不支持偏移吗?有解决方案吗?这对我来说是一个重要的特征。
答案 0 :(得分:0)
我发现基于DZ.player.seek
的解决方法似乎适用于Android,但在receiving player_position events works on iOS之前它无法在iOS上运行:
const album = 10008268;
const trackIndex = 0;
const offset = 10;
DZ.player.playAlbum(album, true, trackIndex, tracklist => {
if (offset) {
DZ.Event.subscribe('player_position', args => {
const position = args ? args[0] : null;
if (position) {
const currentTrack = tracklist.tracks[trackIndex];
const currentTrackLength = Number(currentTrack.duration);
const seekOffset = offset / currentTrackLength * 100;
DZ.player.seek(seekOffset);
setTimeout(() => DZ.Event.unsubscribe('player_position'));
}
});
}
});
需要侦听player_position
个事件,因为如果玩家位置为0,则调用DZ.player.seek
似乎无效。此外,我需要使用setTimeout
取消订阅回调函数之外的内容,否则我得到一个例外。