3

こんにちは、NSCachesDirectory からビデオ ファイルを再生しようとしています。プレーヤーは、videoView レイヤーの NSCachesDirectory からファイルをロードしていません。

cacheDirectory メモリからビデオを再生することは可能ですか? 私に提案してください...

私はこれを試しました..

NSArray *myPathList = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);  
NSString *cachesDir    = [myPathList  objectAtIndex:0];   
NSString *songPath = [[NSString alloc] initWithString: [cachesDir stringByAppendingPathComponent:[NSString stringWithFormat:@"Song.%@", downloadURL]]];

NSURL *pathurl = [[NSURL  alloc] initFileURLWithPath:songPath];
NSLog(@"--pathurl---%@",pathurl);
avPlayer =[AVPlayer playerWithURL:pathurl];
self.avPlayerLayer =[AVPlayerLayer playerLayerWithPlayer:avPlayer];

if ( !([avPlayer status] == AVPlayerStatusReadyToPlay)   &&  (dataReceivedSoFar.length >10000))
    {

        avPlayerLayer.frame =CGRectMake(0, 0, 320, 450);

        [[self.videoView layer] addSublayer:avPlayerLayer];

        [avPlayer play];

         NSLog(@"Video IS Playing");

        [alert dismissWithClickedButtonIndex:0 animated:YES];

    }
4

2 に答える 2

0

この場合、 [avPlayer status] == AVPlayerStatusReadyToPlay が YES を返すかどうかはわかりません。AVPlayer がアイテムをロードするのに時間がかかります。KVOを使用してAVPlayer.statusを追跡する方が良い方法であっても、すぐにプレイできるはずです。

ルーカス

編集:この方法で試してください(クイックウィン):

NSArray *myPathList = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);  
NSString *cachesDir    = [myPathList  objectAtIndex:0];   
NSString *songPath = [[NSString alloc] initWithString: [cachesDir stringByAppendingPathComponent:[NSString stringWithFormat:@"Song.%@", downloadURL]]];

NSURL *pathurl = [[NSURL  alloc] initFileURLWithPath:songPath];
NSLog(@"--pathurl---%@",pathurl);
avPlayer =[AVPlayer playerWithURL:pathurl];

self.avPlayerLayer =[AVPlayerLayer playerLayerWithPlayer:avPlayer];
avPlayerLayer.frame =CGRectMake(0, 0, 320, 450);

[[self.videoView layer] addSublayer:avPlayerLayer];

[avPlayer play];
于 2013-09-24T13:33:29.013 に答える