【发布时间】:2017-01-30 04:54:36
【问题描述】:
我正在尝试播放加密的 hls 内容。使用本地开发的名为 chunker 的工具对内容进行分块。
包含内容信息的目录被加载到想要播放块的设备上,并显示为内容的播放列表。目录指向每个内容的清单文件。
在现场场景中,当分块器正在运行并对内容进行分块时,单击播放列表时不会开始播放,它甚至不会向 d manifest 中的 url 请求解密密钥。但是一旦 chunker 停止,同样的情况就会发生。
在 iPad 上尝试使用 Safari 播放内容时也会发生完全相同的行为。
现在有趣的是,这个问题不会在 ios 模拟器或 macos 上发生,并且播放很好,但只有在 iOS 设备上,当 chunker 运行时它不会播放。
还清楚 hls 内容在 iPad、macos 和模拟器上播放得很好。任何地方都没有内容清晰的问题。
我使用 iOS 8.2 和 9 iPad,我使用 Avplayer 作为播放器。
任何人都可以给我任何线索吗?
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
NSLog(@"Trying to play media ");
NSURL *mediaUrl = [[NSURL alloc]initWithString:[[self.arrMedialist objectAtIndex:indexPath.row]objectForKey:@"url"]];
// NSURL *mediaUrl = [[NSURL alloc]initWithString:@"http://10.237.166.59/ccad/hls.m3u8"];
AVPlayer *player = [[AVPlayer alloc]initWithURL:mediaUrl];
AVPlayerViewController *controller = [[AVPlayerViewController alloc]init];
controller.player = player;
controller.showsPlaybackControls = YES;
[self presentViewController:controller animated:YES completion:nil];
NSLog(@"playing media url %@ ", mediaUrl);
[player play];
}
【问题讨论】:
-
你是在用
AVAssetResourceLoader做这个吗,喜欢这个答案吗? stackoverflow.com/a/19604111/22147 -
我尝试使用 AVURLAsset ,但没有运气。同样的问题。
-
不是 AVURLAsset,而是 AVAssetResourceLoader
-
我没有 https 服务器,那么清单文件和块只是托管在 http 服务器上,我还需要 AVAssetResourceLoader 吗?
-
有没有办法知道播放器是否真的在下载或处理清单文件?
标签: ios avplayer http-live-streaming