2
私のアプリでは、ウェブからビデオをダウンロードして再生します。ビデオをダウンロードして終了する前に再生する
私が使用しています:
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data;
をして私は、ファイルを取得データを保存するために:私はしたいダウンロードされたビデオから50%になったときに
if (currentBytes == 0) {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *fileName = [NSString stringWithFormat:@"%@.mp4", [[paths objectAtIndex:0] stringByAppendingPathComponent:@"1"]];
[[NSFileManager defaultManager] createFileAtPath:fileName contents:data attributes:nil];
handle = [[NSFileHandle fileHandleForUpdatingAtPath:fileName] retain];
[handle seekToEndOfFile];
}else {
if (!data) {
NSLog(@"");
}
[handle writeData:data];
}
currentBytes++;
とAVPlayerで再生を開始してください:
if ((percentComplete > 50)&&(flag == NO)) {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *fileName = [NSString stringWithFormat:@"%@.mp4", [[paths objectAtIndex:0] stringByAppendingPathComponent:@"1"]];
audioPlayer = [[AVPlayer playerWithURL:[NSURL fileURLWithPath:fileName]] retain];
avPlayerLayer = [[AVPlayerLayer playerLayerWithPlayer:audioPlayer] retain];
[avPlayerLayer setFrame:self.view.bounds];
[audioPlayer play];
[[self.view layer] addSublayer:avPlayerLayer];
flag = YES;
}
どうしてうまくいかないのでしょうか?
再生する前にAvPlayerがファイルをチェックすることはできますか?たぶん、AvPlayerはファイルの終わりに何か特別なことを期待しているでしょう。 - ただのアイデア。 – Max