要播放m3u8流媒体
搭建本地服务器:
1. 使用CocoaHTTPServer 生产服务器,指定某文件夹为服务器根目录;
2.启动指定端口的服务器;
3.HTTPServer 为 单例对象的属性,否则服务器启动完就会关闭,用单例就可以将HTTPServer对象放到静态栈里面;
下载m3u8文件:
1.用get请求将 xxxx.m3u8文件下载到服务器根目录下的一个文件夹中;
2.使用M3U8Parser框架解析 http://xxxxx/xxxx.m3u8文件
3.根据解析结果,将m3u8文件里面的.ts文件下载到与xxxx.m3u8文件同一目录下
4.下载.ts文件时使用 get请求,将 http://xxxxx/xxxx.m3u8的http://xxxxx/aaa.ts下载
播放m3u8文件
1.简单点的可以使用
MPMoviePlayerViewController 播放 根服务器下的xxxx.m3u8文件
代码:
注:pod ‘M3U8Parser'
pod ‘CocoaHTTPServer'
HTTPServerManager.h
#import
<Foundation/Foundation.h>
#import <HTTPServer.h>
@interface HTTPServerManager : NSObject
{
HTTPServer *httpServer;
}
+ ( instancetype )shareInstance;
- ( void )startHTTPServer;
#import <HTTPServer.h>
@interface HTTPServerManager : NSObject
{
HTTPServer *httpServer;
}
+ ( instancetype )shareInstance;
- ( void )startHTTPServer;
- (HTTPServer *)returnHTTPServer;
@end
HTTPServerManager.m
#import
"HTTPServerManager.h"
@implementation HTTPServerManager
+ ( instancetype )shareInstance
{
static HTTPServerManager *manager;
static dispatch_once_t once;
if (!manager) {
dispatch_once (&once, ^{
manager = [[ HTTPServerManager alloc ] init ];
});
}
return manager;
}
- ( NSString *)webRoot
{
NSString *web = [ NSHomeDirectory () stringByAppendingPathComponent : @"Documents/web" ];
NSFileManager *fm = [ NSFileManager defaultManager ];
if (![fm fileExistsAtPath :web]) {
[fm createDirectoryAtPath :web withIntermediateDirectories : YES attributes : nil error : nil ];
NSLog ( @" 服务器艮目录是 :%@" ,web);
}
return web;
}
- ( void )startHTTPServer
{
httpServer = [[ HTTPServer alloc ] init ];
[ httpServer setType
@implementation HTTPServerManager
+ ( instancetype )shareInstance
{
static HTTPServerManager *manager;
static dispatch_once_t once;
if (!manager) {
dispatch_once (&once, ^{
manager = [[ HTTPServerManager alloc ] init ];
});
}
return manager;
}
- ( NSString *)webRoot
{
NSString *web = [ NSHomeDirectory () stringByAppendingPathComponent : @"Documents/web" ];
NSFileManager *fm = [ NSFileManager defaultManager ];
if (![fm fileExistsAtPath :web]) {
[fm createDirectoryAtPath :web withIntermediateDirectories : YES attributes : nil error : nil ];
NSLog ( @" 服务器艮目录是 :%@" ,web);
}
return web;
}
- ( void )startHTTPServer
{
httpServer = [[ HTTPServer alloc ] init ];
[ httpServer setType