0

tableViewjpg および mp4 ファイルを含むコンテンツ ディレクトリを一覧表示しています。

現在、任意の mp4 ファイルを選択するMPMovieControllerと、適切なファイルが読み込まれ、それに応じて再生されますが、ファイルの拡張子が JPG の場合に詳細ビューを読み込む方法がわかりません。

たとえば、 で選択したファイルがtableViewイメージ ファイルの場合、 で を開き、imageViewそのdetailViewイメージを表示します。

alertViewその他のファイルについては、不明なファイルであるとプッシュします。

これは私がこれまでに持っているコードですtableview didSelectRowAtIndex

    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

{static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [tableView
                         dequeueReusableCellWithIdentifier:CellIdentifier];


NSString *urlString = [NSString stringWithFormat:@"http://10.1.4.3:8080/DCIM/DCIM/VIDEO/%@",[movieArray objectAtIndex:indexPath.row]];

//Play multiple video
NSURL *url = [NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];

_moviePlayer =  [[MPMoviePlayerController alloc]
                 initWithContentURL:url];

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(moviePlayBackDidFinish:)
                                             name:MPMoviePlayerPlaybackDidFinishNotification
                                           object:_moviePlayer];

_moviePlayer.controlStyle = MPMovieControlStyleDefault;
_moviePlayer.shouldAutoplay = YES;
[self.view addSubview:_moviePlayer.view];
[_moviePlayer setFullscreen:YES animated:YES];}

リンクやソースコードは非常に便利です。

ありがとう。

4

2 に答える 2

0

時間がなかったので、このコードをテストしていません

ただし、動作するはずです。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

{  
    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView
                             dequeueReusableCellWithIdentifier:CellIdentifier];

    /* ============================== THIS DO THE TRICK ============================ */
    NSString *kind = nil;
    NSString *path = [NSString stringWithFormat:@"http://10.1.4.3:8080/DCIM/DCIM/VIDEO/%@", [movieArray objectAtIndex:indexPath.row]];
    NSString *ext = [[path pathExtension] lowercaseString];

    if([ext isEqualToString:@"jpg"] || [ext isEqualToString:@"png"] || [ext isEqualToString:@"jpeg"]) {
        UIViewController *imageController = [[UIViewController alloc] init];
        UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:path]]]];

        CGRect frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height);

        [imageController.view setFrame:frame];
        [imageView setFrame:frame];
        [imageController.view addSubview:imageView];
        [imageView release];

        [self presentModalViewController:imageController animated:TRUE];

        [imageController release];
    }
    /* ============================================================================= */
    else {
        NSString *urlString = path;

        //Play multiple video
        NSURL *url = [NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];

        _moviePlayer =  [[MPMoviePlayerController alloc]
                         initWithContentURL:url];

        [[NSNotificationCenter defaultCenter] addObserver:self
                                                 selector:@selector(moviePlayBackDidFinish:)
                                                     name:MPMoviePlayerPlaybackDidFinishNotification
                                                   object:_moviePlayer];

        _moviePlayer.controlStyle = MPMovieControlStyleDefault;
        _moviePlayer.shouldAutoplay = YES;
        [self.view addSubview:_moviePlayer.view];
        [_moviePlayer setFullscreen:YES animated:YES];
    }
}
于 2013-05-28T10:25:58.100 に答える