iOSアプリのUIWebView
にYouTube動画を埋め込みました。私はthis YouTube blog postで "方法2"を使ってビデオを埋め込みました。これは素晴らしいことですが、iOSがメディアプレーヤーを管理しているため、動画が再生中か再生中かを判断できません。ビデオが再生されている間に別のものとそのビューを交換したくないのですが、それを判断する良い方法はありません。何か案は? JavaScriptのコールバックを取得する方法があれば、それが動作するか、HTML5 <video>
タグを使用してYouTube動画を埋め込む方法があれば、それもうまくいく(私はそれを試みたが成功していない)。iOSの埋め込みYouTube動画でのメディアコールバック
答えて
あなたはUIWebView
にはJavaScriptを注入(http://iphoneincubator.com/blog/windows-views/how-to-inject-javascript-functions-into-a-uiwebviewを参照してください)... JavaScriptとUIWebView
について他の興味深いものがhereとhereを見つけることができますすることができます。
この実験的なYouTube API(http://code.google.com/apis/youtube/iframe_api_reference.htmlを参照)と一緒にこれを試してください...これはあなたが望むものを得ることができるはずです。
javascriptからコードにコールバックするもう1つの有用なリソースはhereです。
iPhoneの場合、私はトリッキーな方法を使いました。ビデオモーダルビューコントローラが終了したときに通知を受け取ることができます。
-(void) onUIWebViewButtonTouch:(id) sender
{
self.isWatchForNotifications = YES;
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(windowNowVisible:)
name:UIWindowDidBecomeVisibleNotification
object:self.view.window
];
}
- (void)windowNowVisible:(NSNotification *)note
{
if (isWatchForNotifications == YES)
{
//modal viewcontroller was dismissed
}
self.isWatchForNotifications = NO;
}
これはうまく動作しますが、ビデオがフルスクリーンで再生されるiPhone上でのみ動作します。 –
MPAVControllerPlaybackStateChangedNotificationのオブザーバを追加するだけです。
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(playbackStateDidChange:)
name:@"MPAVControllerPlaybackStateChangedNotification"
object:nil];
その後、リスニングを開始します。あなたが興味があれば
- (void)playbackStateDidChange:(NSNotification *)note
{
NSLog(@"note.name=%@ state=%d", note.name, [[note.userInfo objectForKey:@"MPAVControllerNewStateParameter"] intValue]);
int playbackState = [[note.userInfo objectForKey:@"MPAVControllerNewStateParameter"] intValue];
switch (playbackState) {
case 1: //end
;
break;
case 2: //start
;
break;
default:
break;
}
}
は、他の州を探検。さらに、他の通知の束に興味を持って誰もがすべて見に登録することができます。
CFNotificationCenterAddObserver(CFNotificationCenterGetLocalCenter(),
NULL,
noteCallbackFunction,
NULL,
NULL,
CFNotificationSuspensionBehaviorDeliverImmediately);
、その後に来るのかどうか確認する:
void noteCallbackFunction (CFNotificationCenterRef center,
void *observer,
CFStringRef name,
const void *object,
CFDictionaryRef userInfo)
{
NSLog(@"notification name: %@", name);
NSLog(@"notification info: %@", userInfo);
}
お楽しみに!
この方法では私のところで95%の視聴率を得ることができますが、一度に複数のYouTubeプレーヤーを画面に表示するため、どの動画が開始されたかを見ることができません。しかし、ありがとう! –
ヘッダファイルからさらに多くの通知をデコードできます。 MPAVControllerItemPlaybackDidEndNotification –
- 1. ランドスケープの埋め込みYouTube動画
- 2. 埋め込み型YouTube動画のモーダル画面のカスタムUIButton
- 3. 埋め込みYouTube動画が読み込まれない
- 4. NativeScriptのHtml/WebViewに埋め込まれたYouTube動画iOS
- 5. Youtube(Python/Html)の動画を自動埋め込み
- 6. YouTubeのデータAPIの動画埋め込みの制限
- 7. モバイルiOS Safariで再生していない埋め込みYoutube動画
- 8. 埋め込みビデオのyoutube
- 9. iFrameにYouTube動画を埋め込む
- 10. 埋め込みYouTube動画を自動的に再生する
- 11. 埋め込み動画 - Iframe - YouTube - 自動再生しません
- 12. ネイティブHTML5モードとフルスクリーンの埋め込みYouTube動画
- 13. 埋め込みYouTube動画の再開方法
- 14. 動画が終了したときのYoutube埋め込みアクション
- 15. jQueryテンプレートを使用したYouTube動画の埋め込み - C#
- 16. ダークプレーヤーでYouTube動画を埋め込みますか?
- 17. YouTube埋め込み動画自動再生画面なしの自動再生
- 18. jScrollPane +埋め込みYoutubeビデオホバー
- 19. youtube埋め込みプレロード
- 20. フローティングYoutube iframe埋め込み
- 21. 埋め込みYoutubeライブチャット
- 22. YouTubeカスタム埋め込みサイザー
- 23. YouTube埋め込みビデオホワイトエリア
- 24. Quill.js:埋め込み動画
- 25. youtube動画をAndroidに埋め込み表示する
- 26. コントロールYouTube動画をHTMLに埋め込みました
- 27. 360ビデオ埋め込みiOSアプリのYoutubeプレーヤー
- 28. YoutubeのPhP機能埋め込みビデオ
- 29. サイドリストトレイ付きの埋め込みYouTubeプレイリスト
- 30. 埋め込み.f4v動画をHTMLで
この質問とその回答をご覧ください:http://stackoverflow.com/questions/8518719/how-to-receive-nsnotifications-from-uiwebview-embedded-youtube-video-playback – Till