ユーザーがボタンをタップすると、ビデオの再生が開始されます。ビデオが再生されると、常に全画面表示モードになります。
ビデオはポートレート モードで再生する必要があります (ただし、通常、ビデオはランドスケープ モードで再生されます)。これどうやってするの?
ユーザーがボタンをタップすると、ビデオの再生が開始されます。ビデオが再生されると、常に全画面表示モードになります。
ビデオはポートレート モードで再生する必要があります (ただし、通常、ビデオはランドスケープ モードで再生されます)。これどうやってするの?
最新の iPhone SDK 3.2+ では、プログラマーが任意のサイズと方向でビデオを表示できるようになりました。MPMoviePlayerController のプロパティである新しい MPMoviePlayerView が提供されます。このビューにはビデオが含まれ、次のように追加できます。ビューのサブビュー。
@interface MPMoviePlayerController (extend)
-(void)setOrientation:(int)orientation animated:(BOOL)value;
@end
moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:movieUR];
[moviePlayer setOrientation:UIDeviceOrientationPortrait animated:NO];
if (moviePlayer)
{
[self.moviePlayer play];
}
ムービー プレーヤーの setOrientation はプライベート API であるため、このソリューションは Apple によって拒否されます。注意が必要ですが、Jailbroke iPhone で動作する可能性があります。
文書化されたドキュメントから、組み込みのメディアプレーヤーを使用してこれが可能であるとは思わない
これを試してみてください。新しいものを見つけました。
@interface MPMoviePlayerController (extend)
-(void)setOrientation:(int)orientation animated:(BOOL)value;
@end
moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:movieUR];
[moviePlayer setOrientation:UIDeviceOrientationPortrait animated:NO];
if (moviePlayer)
{
[self.moviePlayer play];
}
これが私がしたことです。ビデオのプリロードが終了したときに通知する NSNotification を追加します。
- (void)playVideoUrl:(NSString *)videoUrl {
NSURL *url = [NSURL URLWithString:videoUrl];
MPMoviePlayerController* theMovie=[[MPMoviePlayerController alloc]
initWithContentURL:url];
[[NSNotificationCenter defaultCenter] addObserver:self
//MPMoviePlayerContentPreloadDidFinishNotification
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(myMovieFinishedPreloading:)
name:MPMoviePlayerContentPreloadDidFinishNotification
object:theMovie];
// Movie playback is asynchronous, so this method returns immediately.
[theMovie play];
}
コールバック セレクタ:
-(void)myMovieFinishedPreloading:(NSNotification*)aNotification {
NSArray *windows = [[UIApplication sharedApplication] windows];
UIWindow *moviePlayerWindow = nil;
if ([windows count] > 1)
{
moviePlayerWindow = [[UIApplication sharedApplication] keyWindow];
}
CGAffineTransform transform = CGAffineTransformMakeScale(0.5, 0.5);
transform = CGAffineTransformRotate(transform, -90.0f*M_PI/180.0f);
[moviePlayerWindow setTransform:transform];
}