swift - 如何解析m3u播放列表中的徽标图像

2021-04-01

栏目: 类库 ·

简介  这篇文章主要介绍了swift - 如何解析m3u播放列表中的徽标图像以及相关的经验技巧,文章约1895字,浏览量156,点赞数4,值得参考!

我有一个解析m3u播放列表网址,但我也无法解析图片网址?

来自GitHub的所有源代码:https://github.com/ArtemStepuk/zombobox

extension IPTVM3U8PareserService: M3U8ParserService {
func extractChannelsFromRawString(_ string: String) -> [Channel] {
    var channels = [Channel]()
    string.enumerateLines { line, shouldStop in
        if line.hasPrefix("#EXTINF:") {
            let infoLine = line.replacingOccurrences(of: "#EXTINF:", with: "")
            let infoItems = infoLine.components(separatedBy: ",")
            if let title = infoItems.last {
                let channel = Channel(title: title, url: nil, logo: nil)
                channels.append(channel)
            }
        } else {
            if var channel = channels.popLast() {
                channel.url = URL(string: line)
                channels.append(channel)
            }
        }
    }
    return channels
}

tvg-logo提供了解析频道徽标的任何建议。

例:

#EXTINF:-1 tvg-logo="http://i.cdn.turner.com/adultswim/big/video/mainstream/liveStream.jpg" group-title="USA",[AS] Live Stream
http://adultswimhls-i.akamaihd.net/hls/live/238460/adultswim/main/1/master_Layer5.m3u8
答案
//You can do this, and linkIm3 gives you the url for the image    
let val2 = line.components(separatedBy: " ")
for sep in val2{
    if sep.hasPrefix("tvg-logo="){
        let sep2 = sep.components(separatedBy: ",")
        let sep1 = sep2[0]
        let indexStartOfText = sep1.index(sep1.startIndex, offsetBy: 10)
        linkIm2 = String(sep1[indexStartOfText...])
        let indexEndOfText = linkIm2.index(linkIm2.endIndex, offsetBy: -1)
        linkIm3 = String(linkIm2[..<indexEndOfText])
     }
 }

以上就是本文的全部内容,希望对大家的学习有所帮助,本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

相关文章

在iOS上播放.m3u8文件(示例代码)

根据稍后确定的公式字段抑制标题中的徽标

css 页脚徽标/图像

CSS 使徽标图像可链接

php 在登录屏幕上更改徽标图像网址

更改滚动图像徽标(示例代码)

使徽标图像可链接(示例代码)

在保留站点徽标和描述的同时添加标题图像滑块