适用于iPhone的m3u8文件 - 如何在本地保存以便以后播放

Dai*_*isy 6 streaming playback http-live-streaming ios m3u8

任何人都可以指导我,如何从网址存储本地m3u8文件,以便以后离线播放.EXT-X-ALLOW-CACHE会帮助我解决这个问题

NSURLRequest* request = [NSURLRequest requestWithURL:url   cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];
NSURLConnection *connection=[[NSURLConnection alloc]initWithRequest:request delegate:self];
NSLog(@"connection %@",connection);`
Run Code Online (Sandbox Code Playgroud)

我可以直接从网址流式播放m3u8.但是无法在本地存储它并解析.ts文件并播放...请指导.

Rap*_*tor -2

第 1 步:下载文件并保存

NSError *err = nil;
NSString *url = [[NSString stringWithFormat:@"http://www.example.com/playlist.m3u8"] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSString *the_file = [NSString stringWithContentsOfURL:[NSURL URLWithString:url] encoding:NSUTF8StringEncoding error:&err];
if(err != nil) {
    // do some error handling, e.g. NSLog(@"Fail: %@", [err localizedDescription]);
} else {
    // save the file ( see Step 2 )
}
Run Code Online (Sandbox Code Playgroud)

第 2 步:保存文件

您可以将其另存为文件,也可以将其另存为对象。

// save as file
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docDirectory = [paths objectAtIndex:0];
NSString *fileName = [NSString stringWithFormat:@"%@/playlist.m3u8", docDirectory];
[the_file writeToFile:fileName atomically:NO encoding:NSASCIIStringEncoding error:nil];

// OR, save as object
[[NSUserDefaults standardUserDefaults] setObject:the_file forKey:@"MY_M3U8"];
Run Code Online (Sandbox Code Playgroud)

第 3 步:读取文件

// read from file 
NSString *textPath = [docDirectory stringByAppendingPathComponent:@"playlist.m3u8"];
// the FILE is loaded


// OR, read from object
NSString *content = [[NSUserDefaults standardUserDefaults] stringForKey:@"MY_M3U8"];
// it will contain the CONTENT of file
Run Code Online (Sandbox Code Playgroud)

第 4 步:在播放器中播放

你应该这么做的。不需要我写吧?

  • @Raptor,您确定可以播放本地存储的 .m3u8 文件吗?据我所知,播放器不支持这一点 - 文件需要通过 HTTP 下载(是的,我知道这很愚蠢)。以下是人们也发现它的几个线程:1)http://stackoverflow.com/questions/3199232/mpmovieplayercontroller-and-local-m3u8-files 2)http://stackoverflow.com/questions/15427360/how -在 ios 中播放 m3u8 或 ts 文件 (2认同)