nplayer icon indicating copy to clipboard operation
nplayer copied to clipboard

使用hls播放直播流,IOS移动端播放不了

Open acegank opened this issue 3 years ago • 10 comments

安卓可以正常播放直播。但是ios播放不了。是不是hls不支持ios

acegank avatar Jun 16 '22 18:06 acegank

ios 原生就支持 hls,不需要 hls.js。直接像播放普通 mp4 一样,直接传给 player 一个链接就行了

oyuyue avatar Jun 17 '22 06:06 oyuyue

@woopen 我也是这么想的,但是通过updateOptions更新后无法播放 watch(props, (n) => { unref(player).updateOptions({ live: true, videoProps: { src: n.url, } }); }); n.url是父组件通过接口传进来的。

acegank avatar Jun 17 '22 10:06 acegank

src 是放在最外层的,不用 videoProps 包裹。另外还可以直接 player.video.src = newSrc

oyuyue avatar Jun 17 '22 10:06 oyuyue

@woopen 我试过还是不行 unref(player).updateOptions({ live: true, src: n.url, });

acegank avatar Jun 17 '22 10:06 acegank

网络有去请求了一次直播地址,然后就没了。

acegank avatar Jun 17 '22 10:06 acegank

<NPlayer :options="{ scr: url, shortcut: false, seekStep: 0 }" :set="setPlayer" />

const setPlayer = (p: any) => { player.value = p; video.value = p.video; }

`watch(props, (n) => { console.log("变化:", n.url);

unref(player).updateOptions({ live: true, src: n.url, });

// unref(player).video.src = n.url });`

acegank avatar Jun 17 '22 10:06 acegank

有报错吗?是不是 m3u8 链接?

oyuyue avatar Jun 17 '22 13:06 oyuyue

没有报错,也能请求成功,但就没有后续了,正常hls流应该是分段一直请求。这个流是没问题的,保证可以播放。 即使不从父组件传递过来,直接src:'xxx.m3u8' 给链接也是一样的效果。 但如果是原生的video组件是可以

acegank avatar Jun 17 '22 13:06 acegank

在onMounted的时候去更新地址可以播放,但换成安卓无法播放了。心态炸了

acegank avatar Jun 17 '22 16:06 acegank

安卓不原生支持 hls,需要用 hls.js 才行

oyuyue avatar Jun 18 '22 01:06 oyuyue