0

NSData をドキュメント辞書に書き込むこの関数があります-

- (void)writeData
{
    NSString *str = @"http://labs.widespace.com/resources/banner/ikea/verkligheten/video.m4v";

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *path = [documentsDirectory stringByAppendingPathComponent:str];
    NSLog(@"%@",path);
    NSLog(@"About to Write Data");
    NSData* data0 = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:str]];
    [data0 writeToFile:path atomically:YES];
    NSLog(@"Writting  Data Completed");
}

後でこのデータを読み取り、MPMoviePlayerController を使用してビデオを再生しようとしましたが、残念ながらこれは再生されません-

- (void)readData
{
    NSString *str = @"http://labs.widespace.com/resources/banner/ikea/verkligheten/video.m4v";
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,     NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *path = [documentsDirectory stringByAppendingPathComponent:str];
    NSURL* url = [[NSURL alloc] initFileURLWithPath:path];    
    NSLog(@"url:%@",url);

    NSError *error = nil;
    BOOL isReacahble = [url checkResourceIsReachableAndReturnError:&error];
    NSLog(@"isReachable :%i,%@",isReacahble,error);

    BOOL fileExist =  [[NSFileManager defaultManager] fileExistsAtPath:path];

    if(fileExist)
    {
        NSLog(@"File Exist in path");
    }
    else
    {
        NSLog(@"NO File Exist");
    }

    MPMoviePlayerController *moviePlayer=[[MPMoviePlayerController alloc] initWithContentURL:url];
    [moviePlayer prepareToPlay];
    NSLog(@"movie player:%@",moviePlayer);
    [moviePlayer setControlStyle: MPMovieControlStyleFullscreen];
    [moviePlayer.view setFrame:CGRectMake(0, 0,320, 480)];
    [self.view addSubview:moviePlayer.view];
    moviePlayer.shouldAutoplay = YES;   
    [moviePlayer play];
}

これを再生しようとすると、次のエラーが表示されます-

2013-01-17 11:21:07.067 VideoCheck[338:907] [MPAVController] Autoplay: Disabling autoplay for pause
2013-01-17 11:21:07.068 VideoCheck[338:907] [MPAVController] Autoplay: Disabling autoplay
2013-01-17 11:21:07.090 VideoCheck[338:907] [MPAVController] Autoplay: Skipping autoplay, disabled (for current item: 1, on player: 0)
2013-01-17 11:21:07.091 VideoCheck[338:907] movie player:<MPMoviePlayerController: 0x21078250>
2013-01-17 11:21:07.093 VideoCheck[338:907] [MPAVController] Autoplay: Skipping autoplay, disabled (for current item: 1, on player: 0)
2013-01-17 11:21:07.102 VideoCheck[338:907] [MPAVController] Autoplay: Enabling autoplay
2013-01-17 11:21:07.113 VideoCheck[338:907] [MPAVController] Autoplay: Likely to keep up or full buffer: 0
2013-01-17 11:21:07.114 VideoCheck[338:907] [MPAVController] Autoplay: Skipping autoplay, not enough buffered to keep up.
2013-01-17 11:21:07.115 VideoCheck[338:907] [MPAVController] Autoplay: Enabling autoplay
2013-01-17 11:21:07.121 VideoCheck[338:907] [MPCloudAssetDownloadController] Prioritization requested for media item ID: 0
2013-01-17 11:21:07.149 VideoCheck[338:907] [MPAVController] Autoplay: Enabling autoplay

誰かがコードを実行して、ここで何が起こっているかについての情報を提供してもらえますか??誰か助けてください。iOS6を使用しています。

4

1 に答える 1

0

メソッドでは、名前をファイルとして指定するwrieData代わりに、 . お気に入りURLvideo

NSString *path = [documentsDirectory stringByAppendingPathComponent:[str lastPathComponent]];

メソッドでも同じことを行いreadDataます。

于 2013-01-17T06:12:32.763 に答える