我使用C#.NET语言编写了一个播放器,用于电视直播(播放m3u8文件)。
但是这种情况下会出现播放失败:
1.用C#.NET语言构建一个本地http监听事件,搭建一个本地的直播代理服务,比如播放CCTV1,本地搭建了一个地址:http://192.168.1.123/cctv?key=cctv1(用aplayer播放这个地址)
2.这个地址会返回一个标准的m3u8 ts流字符串,类似这样:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:11
#EXT-X-MEDIA-SEQUENCE:151718934
#EXTINF:10.6,
http://www.cctv.com/hls/livecctv1_2000000_20180129_092000_55.ts
#EXTINF:8.8,
http://www.cctv.com/hls/livecctv1_2000000_20180129_092000_56.ts
#EXTINF:10.68,
http://www.cctv.com/hls/livecctv1_2000000_20180129_092000_57.ts
3.播放器会出现播放失败,直接播放ts地址却可以,以前的版本(772之前)也可以这样实现,后面的几个版本没有测试(另外建议搞个可以下载历史版本的模块提供下载)
另外直接使用公网服务器做代理却不会出现这个问题,不知道是不是aplayer对返回的Header做了什么参数验证还是什么。