2011-11-15 8 views
1

編集:動画は使用中のアプリです。つまり、ポートレートモードで再生できるように設計された教材です。UIWebViewでYouTube動画を再生するときにポートレートモードを強制的に実行する

私は&は(舞台裏のUIWebViewを使用して)YouTubeの動画を再生する開くためにthis method(NB iPhoneDevSDK.comが現在のマルウェアを含むとGoogleがマークされているので、注意してください。私はscreengrab of the relevant postをアップロードした)を使用。

私が見せたいビデオは、ポートレートモード(320x480でアップロード)で記録され、ポートレートモードのときにiPhone画面をきれいにすることを意図していました。ただし、YouTubeのビデオは強制的なランドスケープモードで開始され、携帯電話をランドスケープの位置に移動してからもう一度戻すことで、縦書きにすることができます(時には数回行う必要があります)。

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

NB私は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 
  • 最初のイメージ:ポートレートモード:デフォルト
  • 第二の画像で景観にビデオ再生かつて数回

In Landscape by default In Portrait mode once rotated a few times

を回転させます

答えて

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)

+0

残念ながら、これらの両方を試してみましたが、まだ風景モードでビデオを開始しています。 –

+0

私はUIWebViewをサブクラス化しようとしましたが、ちょうど次の場合に備えて:*編集:ボールここにコードを入力することはできません、メインポストを参照してください* –

+0

これらの2つのメソッドはビューコントローラ用でありビュー用ではありません...さえ呼び出される。 :-)あなたがする必要があるのは、(これらの2つの方法で)新しいView Controllerを作成し、そのUIWebViewをxibファイルに入れ、ムービーを表示するときにView Controllerをプッシュ/プレゼンテーションします。意味がありますか? –

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]; 
+0

これはいい考えです。私はそれを試してみましょう。ありがとう。 –

関連する問題