1

編集:ビデオは使用されているアプリのものです。つまり、ポートレートモードで再生するように設計された教育用ビデオです。

私はこの方法を使用して (NB iPhoneDevSDK.comは現在Googleによってマルウェアを含むとマークされているので、注意してください。関連する投稿のスクリーングラブをアップロードしました)、YouTubeビデオを開いて再生します(舞台裏でUIWebViewを使用)。

私が見せたいビデオはポートレート(320x480でアップロード)で記録されており、ポートレートモードのときにiPhoneの画面をきれいに埋めることを目的としていました。ただし、YouTubeビデオは強制横向きモードで開始され、携帯電話を横向きに動かしてから元に戻すことによってのみ縦向きにすることができます(場合によっては数回行う必要があります)。

私が疑問に思っているのは、UIWebViewにデフォルトでポートレートモードのビデオプレーヤーを開くように強制する方法はありますか?

注意:UIWebViewを生成するUIWebViewデリゲートに(interfaceOrientation == UIInterfaceOrientationPortrait)を設定しました。

編集:UIWebViewをオフチャンスでサブクラス化してみましたが、これで機能するようになりました。

@interface AltWebView : UIWebView
@end

@implementation AltWebView

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    [[UIDevice currentDevice] setOrientation:UIInterfaceOrientationPortrait];
}

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

@end
  • 最初の画像:デフォルトで横向きで再生されているビデオ
  • 2番目の画像:ポートレートモードを数回回転させた

デフォルトではランドスケープ ポートレートモードでは、1回数回転します

4

2 に答える 2

4

私は最近同じ問題に直面しており、このコードを使用しました。これはあなたの質問に対する正しい答えではないかもしれませんが、縦向きモードで YouTube ビデオを再生します。

NSString *embedHTML = @"<iframe title=\"YouTube video player\" width=\"320\" height=\"460\" scrolling=\"no\" src=\"http://www.youtube.com/embed/%@?modestbranding=1&amp;rel=0;autoplay=1;showinfo=0;loop=1;autohide=1\" frameborder=\"0\" allowfullscreen allowTransparency=\"true\"></iframe>"; 

NSString *htmlStr = [NSString stringWithFormat:embedHTML, videoID];  // videoID is like EgXdUs9HsrQ...  

[webView loadHTMLString:htmlStr baseURL:nil]; 
于 2012-01-31T07:50:49.860 に答える
1

UIWebView を所有するビュー コントローラーについては、そのビュー コントローラーからのすべてを縦向きモードでのみ表示するように指定できます。

次のように言います。

- (void)viewWillAppear:(BOOL)animated {
    [[UIDevice currentDevice] setOrientation:UIInterfaceOrientationPortrait];
}

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

ところで、 iPhone SDK: Orientation (Landscape and Portrait views)には、役に立つヒントがたくさんある役に立つ質問があります。

于 2011-11-15T14:33:43.877 に答える