5932


MPMoviePlayerControllerにプレイリストを設定したいのですが、MPMoviePlayerControllerは引数に配列を取るクラスではないとのことで下記のようなコードを書いてみました。  
が、やはりエラーが出てしまいます。  
どの部分がいけないのでしょうか。  
どなたか教えてください、よろしくお願い致します。

[code]

    (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    
        MovieTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"movieCell" forIndexPath:indexPath];
    
    
        NSURL *url1 = [NSURL URLWithString:@"http://www.ajisaba.net/motion/dnld.php?fpath=emu.mp4"];
    
        NSURL *url2 = [NSURL URLWithString:@"http://www.ajisaba.net/motion/dnld.php?fpath=penguin.mp4"];
    
        NSArray *urls = [NSArray arrayWithObjects:url1,url2,nil];
    
    
    
    
        for (int i=0; i<urls.count; i++)
        {
            urls = urls[i];
    
            MPMoviePlayerController *moviePlayerController = [[MPMoviePlayerController alloc]initWithContentURL:urls];
    
            [moviePlayerController setScalingMode:MPMovieScalingModeAspectFit];
    
            [moviePlayerController.view setFrame:CGRectMake(0, 0, 320, 170)];
    
    
           if([self.movieList indexOfObject:moviePlayerController] == NSNotFound ){
            [self.movieList insertObject:moviePlayerController atIndex:indexPath.row];
    
    
           }}
    
        return cell;
    }
    
[/code]


CC BY-SA 3.0
2015-02-04T07:40:28.090
5931
2015-02-04T09:21:13.943
2015-02-04T08:17:38.060
8059
question
ios objective-c xcode
MPMoviePlayerControllerにプレイリストを設定したい


まず、ループの中でループカウンタに使用している変数(urls)に代入するのはNGです。

[code]

    for (int i=0; i<urls.count; i++)
    {
       urls = urls[i];
    }}
    
[/code]

---- 追記 -----  
単純な順番に再生だけなら下記のような感じでいけます（一応、動作確認済み）  
ただ、前の動画、次の動画、早送り、巻き戻し等の機能を備えたものにするのは下記では足りません。  
「MPMoviePlayer playlist」等で検索すると情報が出てきます。

[code]

    @implementation ViewController
    {
        MPMoviePlayerController* mv_;
        NSArray* uris_;
        NSInteger nextPlayNo_;
    }
    
    - (void)viewDidLoad
    {
        [super viewDidLoad];
        // プレイリストを作成する
        [self createPlayList];
        // 通知を追加する
        [self addNotification];
    }
    
    - (void)didReceiveMemoryWarning
    {
        [super didReceiveMemoryWarning];
    }
    
    - (void)createPlayList
    {
        uris_ = @[
                  [NSURL URLWithString:@"http://www.ajisaba.net/motion/dnld.php?fpath=emu.mp4"]
                  , [NSURL URLWithString:@"http://www.ajisaba.net/motion/dnld.php?fpath=penguin.mp4"]
                  , [NSURL URLWithString:@"http://www.ajisaba.net/motion/dnld.php?fpath=emu.mp4"]
                  ];
        nextPlayNo_ = 0;
    }
    
    - (void)startupMoviePlayer
    {
        mv_ = [[MPMoviePlayerController alloc] initWithContentURL:uris_[nextPlayNo_]];
        mv_.controlStyle = MPMovieControlStyleDefault;
        mv_.scalingMode = MPMovieScalingModeAspectFit;
        mv_.shouldAutoplay = NO;
        mv_.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
        mv_.view.autoresizesSubviews = YES;
        mv_.view.frame = self.view.bounds;
    
        [mv_ prepareToPlay];
        [self.view addSubview:mv_.view];
    }
    
    #pragma mark - Notifications
    
    - (void)addNotification
    {
        // 再生終了時の処理
        [[NSNotificationCenter defaultCenter] addObserver:self
                                                 selector:@selector(playbackNextMovie)
                                                     name:MPMoviePlayerPlaybackDidFinishNotification
                                                   object:nil];
    }
    
    - (void)playbackNextMovie
    {
        nextPlayNo_++;
        if ([uris_ count] <= nextPlayNo_) {
            return;
        }
        [mv_ setContentURL:uris_[nextPlayNo_]];
        [mv_ prepareToPlay];
    }
    
    #pragma mark - IBAction
    
    - (IBAction)touchupStartup:(UIButton *)sender
    {
        [self startupMoviePlayer];
    }
    
[/code]


CC BY-SA 3.0
2015-02-04T07:46:14.937
5932
2015-02-04T09:21:13.943
2015-02-04T09:21:13.943
3516
3516
5931
answer