2016-09-21 8 views
0

暗号化されたhlsコンテンツを再生しようとしています。コンテンツは、ローカルに開発されたchunkerと呼ばれるツールを使用してチャンクされます。暗号化hls再生が行われない

コンテンツの情報を持つカタログが、チャンクを再生したいデバイスにロードされ、コンテンツのプレイリストとして表示されます。カタログは、各コンテンツのマニフェストファイルを指し示します。

ライブシナリオでは、チャンクが実行中でコンテンツをチャンクしているときに再生が開始されず、復号キーのURLマニフェストへのリクエストも行われません。しかし、チャンジャーが止まるとすぐに同じことが起こります。

iPadでSafariを使用してコンテンツを再生しようとすると、まったく同じような動作が発生します。

これは興味深いことですが、この問題はiosシミュレータやmacosでは起こりません。再生は問題ありませんが、チャンスがかかっているときに再生できないiOSデバイスでのみ問題になります。

また、クリアな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]; 
} 
+0

この回答のように 'AVAssetResourceLoader'でこれを行いますか? http://stackoverflow.com/a/19604111/22147 –

+0

私はAVURLAssetを使用しようとしましたが、運がありません。同じ問題。 – CodeTry

+0

ないAVURLAssetが、AVAssetResourceLoader –

答えて

1

最終的に何が問題か分かった。興味深いものだが、他人を助けるかもしれない。 すべてのチャンクに対して、チャンクが最初にキーuriのEXT-X-KEYタグを追加していました。チャンクタグまたは名前が次のチャンクを処理する直前に追加されるため、いつでもEXT-X-KEYタグで終了します。このタグに対応する実際のチャンクは、チャンクが作成された後にのみ追加され、次にすぐに次のチャンクのためのEXT-X-KEYタグが続きます。最後のEXT-X-KEYタグのチャンクがまだ更新されていないので、更新の途中でプレイリストを読み込んだとプレイヤーが思っているように見え、試し続けます。チャンクを停止すると、信号がキャッチされ、プレイリストが最後のチャンクで更新されます。だから、プレイヤーを止めた後で遊ぶことができます。 そして、奇妙なことに、iOSだけがこの問題を抱えています.Macosとシミュレータはこのケースを処理したようです。

関連する問題