1

ビデオ ボタンはナビゲーション バーの ViewController にあります。これを押すと、ビデオがすぐに縦向きモードで表示されます。手動で回転させると、横向きになります。ボタンを押した直後にビデオを横向きモードで表示するにはどうすればよいですか? ViewController をポートレート モードにし、ビデオのみをランドスケープ モードにする必要があります。

これは ViewController.m ファイルです。

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // Return YES for supported orientations
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

-(IBAction)backbutton
{
    ChapterTableViewController *chapterTable = [self.storyboard instantiateViewControllerWithIdentifier:@"chapterTable"];

    [self.navigationController presentModalViewController:chapterTable animated:YES];
}

-(IBAction)playvideo
{
    NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle]
                        pathForResource:@"One Piece Episode 180" ofType:@"mp4"]];

    MPMoviePlayerViewController *playercontroller = [[MPMoviePlayerViewController alloc] initWithContentURL:url];

    [self presentMoviePlayerViewControllerAnimated:playercontroller];
    playercontroller.moviePlayer.movieSourceType = MPMovieSourceTypeFile;
    [playercontroller.moviePlayer play];
    playercontroller = nil;
} 

@end
4

3 に答える 3

0
[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight animated:NO];

[[self view] setBounds:CGRectMake(0, 0, 480, 320)];
[[self view] setCenter:CGPointMake(160, 240)];
[[self view] setTransform:CGAffineTransformMakeRotation(M_PI / 2)];

全画面再生の場合はMPMoviePlayerViewControllerを使用し、横向きで起動して再生するには、MPMoviePlayerViewControllerクラスの「shouldAutorotateToInterfaceOrientation」メソッドを使用します。

次のようになります。

[yourInstanceOfMPMoviePlayerViewController shouldAutorotateToInterfaceOrientation: UIInterfaceOrientationLandscapeRight];
于 2012-07-10T04:39:20.937 に答える
0

ViewController.m と、この ViewController がプッシュされているビューでこれを試してください。

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // Return YES for supported orientations
    return (interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}
于 2012-07-10T05:50:54.313 に答える
-1

ViewControllerファイルでどのモードでビデオを録画したいかをユーザーにオプションを与えることができ、ビデオコントローラーで次の状態を確認して、問題を解決できます。

- (int)deviceOrientationDidChange
{   
    UIDeviceOrientation deviceOrientation = [[UIDevice currentDevice] orientation];
    int val;
    if (deviceOrientation == UIDeviceOrientationPortrait){
        orientation = AVCaptureVideoOrientationPortrait;
        val=1;
        NSLog(@"AVCaptureVideoOrientationPortrait");
    }
    else if (deviceOrientation == UIDeviceOrientationPortraitUpsideDown){
        orientation = AVCaptureVideoOrientationPortraitUpsideDown;
        val=2;
        NSLog(@"AVCaptureVideoOrientationPortraitUpsideDown");
    }

    // AVCapture and UIDevice have opposite meanings for landscape left and right (AVCapture orientation is the same as UIInterfaceOrientation)
    else if (deviceOrientation == UIDeviceOrientationLandscapeLeft){
        orientation = AVCaptureVideoOrientationLandscapeRight;
        val=3;
        NSLog(@"AVCaptureVideoOrientationLandscapeRight");

    }
    else if (deviceOrientation == UIDeviceOrientationLandscapeRight){
        orientation = AVCaptureVideoOrientationLandscapeLeft;
        val=4;
        NSLog(@"AVCaptureVideoOrientationLandscapeLeft");

    }
    return val;
    // Ignore device orientations for which there is no corresponding still image orientation (e.g. UIDeviceOrientationFaceUp)
}
于 2012-07-10T08:32:25.657 に答える