2

MPMoviePlayerController のサイズを動的に変更して、iPhone/iPad (縦向きと横向きの両方) のすべての画面サイズを修正するにはどうすればよいですか?

これは私のコードです:

 - (void)viewDidLoad
{
[super viewDidLoad];

UIBarButtonItem *about = [[UIBarButtonItem alloc] initWithTitle:@"About" style:UIBarButtonItemStyleDone target:self action:@selector(openPopup)];
self.navigationItem.leftBarButtonItem = about;


NSURL *streamURL = [NSURL URLWithString:@"http:/streamUrl/playlist.m3u8"];

_streamPlayer = [[MPMoviePlayerController alloc] initWithContentURL:streamURL];


self.streamPlayer.controlStyle = MPMovieControlStyleEmbedded;

[self.view addSubview: self.streamPlayer.view];

[self.streamPlayer play];


}

私も追加しようとしました

[self.streamPlayer.view setFrame:self.view.bounds];

ただし、これにより、スクリーンショットに示すように、ビデオが画面に固定されなくなります

ここに画像の説明を入力

すべての異なるデバイスのすべての画面を修正するにはどうすればよいですか? 前もって感謝します。

4

3 に答える 3

2

私が見つけた最良の解決策は、次を使用することです

 CGFloat width = [UIScreen mainScreen].bounds.size.width;
 CGFloat height = [UIScreen mainScreen].bounds.size.height;

 [self.streamPlayer.view setFrame:CGRectMake(10, 10 ,height-20, width-70)];
于 2012-12-09T11:14:30.350 に答える
0

私はios 5でこの問題を次のように解決しました:

AvPlayerLayer *avPlayerLayer =[[AVPlayerLayer alloc]init];
avPlayerLayer = [[AVPlayerLayer playerLayerWithPlayer:avPlayer] retain];
avPlayerLayer.frame = self.playerView.layer.bounds;
avPlayerLayer.transform = CATransform3DMakeRotation(M_PI / 2.0, 0, 0, 1);

[self.playerView.layer addSublayer:avPlayerLayer]; 

ここに avPlayerLayer.transform があり、任意の方向に設定できます。

于 2012-12-04T12:22:31.053 に答える
0
 MPMoviePlayerViewController *moviePlayerViewController = [[MPMoviePlayerViewController alloc] initWithContentURL:[NSURL fileURLWithPath:contentURL]];
        if (moviePlayerViewController) {


            [self presentMoviePlayerViewControllerAnimated:moviePlayerViewController];
            [moviePlayerViewController.moviePlayer setMovieSourceType:MPMovieSourceTypeFile];

            if ([moviePlayerViewController.moviePlayer respondsToSelector:@selector(setAllowsAirPlay:)]) {
                [moviePlayerViewController.moviePlayer setAllowsAirPlay:YES];
            }

            [[NSNotificationCenter defaultCenter] addObserverForName:MPMoviePlayerPlaybackDidFinishNotification object:moviePlayerViewController queue:nil usingBlock:^(NSNotification *notification) {
                [[NSNotificationCenter defaultCenter] removeObserver:self];
                [self dismissMoviePlayerViewControllerAnimated];
            }];
            [moviePlayerViewController.moviePlayer play];
        }
于 2012-12-04T14:26:45.873 に答える