.-- --

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
スポンサー広告 comment(-) trackback(-)
.07 2011

YouTubeの動画を自動再生したい

どうも、僕です。
いいえ、UTOです。


前回、YouTubeの動画をアプリ内で再生する方法を紹介しました。
試された方はお気づきかと思いますが、NavigationControllerで動画再生するっとボタンを押して
画面遷移してきたら、サムネイルのボタンをま~たタップしないと動画は再生されないのです。

WebViewを開いたら自動で動画再生開始する方法はないのかなっと調べてみたらありました。


まず前回のソースにて変更する点があります。

ビューコントローラーのヘッダにデリゲートを指定します

@interface YouTubeViewController : UIViewController {
UIWebView* m_webView;
}


autoreleaseをやめます。
このままだとこのメソッドを抜けたあとに解放されてしまい、デリゲートの処理がうまく動かないためです。

UIWebView* webView = [[[UIWebView alloc] initWithFrame: CGRectMake(50, 50, 212, 172)] autorelease];

m_webView = [[UIWebView alloc] initWithFrame: CGRectMake(50, 50, 212, 172)];
m_webView.delegate = self;


今回の肝であるデリゲート関数を追加しましょう


- (void)webViewDidFinishLoad:(UIWebView *)webView{
UIButton* button = [self findButtonInView: webView];
[button sendActionsForControlEvents: UIControlEventTouchUpInside];
}


さらにデリゲート関数内で行っているfindButtonInView関数を実装しましょう

- (UIButton*)findButtonInView: (UIView*) view{
UIButton* button = nil;
// チェック対象のビューがボタンクラスの場合
if([view isMemberOfClass: [UIButton class]]){
return (UIButton*)view;
}
// チェック対象のビュー内に子ビューが登録されている場合
if(view.subviews && [view.subviews count] > 0){
for(UIView* subView in view.subviews){
button = [self findButtonInView: subView];
if(button){
return button;
}
}
}
return button;
}


1.処理の内容はUIWebViewのHTML読み込みが完了時にデリゲートが実行される
2.読み込み完了したUIWebView内にボタンクラスのビューが存在するかチェックする関数を実行
3.再帰的にビューの深部へ潜っていき、ボタンクラスを発見するまで行う
4.見つかったボタンをタップアップしたイベントを発生させる

以上で動画を自動再生させる処理となります。

YouTube動画の埋め込みコードは現在のところ
ifameタグを使った新しいコードと
objectタグ+embedを使った古いコードが選択できます。

iframeのタグを使用した場合、上記のボタンビューを見つける処理にて見つけられないようです。

自動再生したい場合は古いコードを使用しましょう。


関連記事
スポンサーサイト

Comment

Post comment

  • comment
  • secret
  • 管理者にだけ表示を許可する

Trackback

trackbackURL:http://appteam.blog114.fc2.com/tb.php/190-aeba533f

ブログ内検索

関連リンク

製品情報

最新記事

カテゴリ

プロフィール

neoxneo



NEXT-SYSTEM iOS Developers Blog


  • UTO:
    カナダ版iPhone4Sは、マナーモードでシャッター音がならない…


  • Ehara:
    ...


  • Hayate:
    ...


  • Tasaki:
    Developer登録完了...したのはいいけど


  • Ueda:
    ...



リンク

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。