C# HLS播放列表中列出的片段位于何处?

C# HLS播放列表中列出的片段位于何处?,c#,naudio,http-live-streaming,internet-radio,naudio-framework,C#,Naudio,Http Live Streaming,Internet Radio,Naudio Framework,我有下一个HLS播放列表:。 它包含AAC音频文件段链接。 文件内容为: #EXTM3U #EXT-X-VERSION:3 ## Created with Z/IPStream R/2 v1.03.23 #EXT-X-MEDIA-SEQUENCE:2984548 #EXT-X-TARGETDURATION:6 #EXT-X-PROGRAM-DATE-TIME:2018-10-23T11:44:44Z #EXTINF:5.99, no desc 01493/seg128000-02984548.a

我有下一个HLS播放列表:。 它包含AAC音频文件段链接。 文件内容为:

#EXTM3U
#EXT-X-VERSION:3
## Created with Z/IPStream R/2 v1.03.23
#EXT-X-MEDIA-SEQUENCE:2984548
#EXT-X-TARGETDURATION:6
#EXT-X-PROGRAM-DATE-TIME:2018-10-23T11:44:44Z
#EXTINF:5.99, no desc
01493/seg128000-02984548.aac
#EXTINF:5.99, no desc
01493/seg128000-02984549.aac
#EXTINF:5.99, no desc
01493/seg128000-02984550.aac
#EXTINF:5.99, no desc
01493/seg128000-02984551.aac
#EXTINF:5.99, no desc
01493/seg128000-02984552.aac
#EXTINF:5.99, no desc
01493/seg128000-02984553.aac

我不明白这些部分位于何处。谁能给我解释一下吗?我如何才能到达每个单独的片段来播放它,例如,使用NAudio MediaFoundationReader?

由于缺少前导的
/
,资源位于与源文档相对的位置,其工作方式与HTML页面中的链接完全相同。因此:例如
01593/seg128000-03184874.aac
https://digitacdn.akamaized.net/hls/live/629243/radiosuomipop/master-128000.m3u8
存在于
https://digitacdn.akamaized.net/hls/live/629243/radiosuomipop/01593/seg128000-03184874.aac

处理此问题的安全方法是在
Uri
类上使用现有重载:

var m3u8Url = 
  "https://digitacdn.akamaized.net/hls/live/629243/radiosuomipop/master-128000.m3u8"
var baseUri = new Uri(m3u8Url);
var resourceUri = new Uri(baseUri, "01493/seg128000-02984548.aac");
Console.WriteLine(resourceUri.AbsoluteUri);

通过这种方式,生成的URL将使用浏览器使用的相同逻辑进行组装,正确处理相对(
32724/foo
)、本地绝对(
/32724/foo
)和完全限定的URL(
http://somehost/32724/foo
)。

它们相对于源文档存在,与HTML页面中的链接的工作方式完全相同。因此:例如
01593/seg128000-03184874.aac
https://digitacdn.akamaized.net/hls/live/629243/radiosuomipop/01593/seg128000-03184874.aac
FYI,这是HLS播放列表。这与SHOUTcast没有任何关系。好的,我将阅读有关HLS播放列表的内容。谢谢你,布拉德!