#ios #m3u8
#iOS #m3u8
Вопрос:
Я использую M3U8Parser, но во время выполнения получаю исключение.
NSString *plainString = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:amp;error];
infolist = [M3U8Parser m3u8SegmentInfoListFromPlanString:plainString];
После infolist я получаю исключение.
reason: '-[__NSCFString substringWithRange:]: Range {10, 9223372036854775797} out of bounds; string length 36'
Пожалуйста, помогите!
Комментарии:
1. Поместите точки останова в метод
m3u8SegementInfoListValue
(вNSString m3u8.h
файл, так как я предполагаю, что вы используете github.com/0dayZh/M3U8Kit ?), и проверьте, где именно он выходит из строя.
Ответ №1:
Вам нужно внести некоторые изменения в NSString m3u8.m:
if(NSNotFound != bandwidthRange.location) {
NSString *value;
// issue fixed
if (commaRange.length == 0)
{
value = [substring substringFromIndex:10];
}
else
{
value = [substring substringWithRange:NSMakeRange(bandwidthRange.length 1, commaRange.location - (bandwidthRange.length 1))];
}
[params setValue:value forKey:keyM3U8SegmentBandwidth];
}
На данный момент я жестко запрограммировал значение, которое вы можете изменить в соответствии с вашими требованиями.