• 締切済み

Youtube動画再生時のフルスクリーン抑止したい

iPhoneアプリの開発でyoutube動画をアプリ内で再生する際にフルスクリーンとなるの防ぎ アプリ内のViewで再生する方法を探しています。 ちょうど下記質問で解決済みとなっているのですが、 同様に設定してもフルスクリーンとなってしまいました。 http://okwave.jp/qa/q8472053.html どなたか、アドバイス等いただけませんでしょうか。 <環境> Xcode:Version 5.1 (5B130a) iOS :7.1 <試したこと> UIWebViewを設置して、ViewControllerの viewDidAppear 内で下記のように記述しておりますが、全画面表示で再生されてしまいます。 NSString *html = @"<iframe webkit-playsinline width=\"150\" height=\"100\" src=\"https://www.youtube.com/embed/ULomZ-kcsEg?feature=player_detailpage&playsinline=1\" frameborder=\"0\"></iframe>"; // UIWebViewに生成したHTMLをセットする self.webView.allowsInlineMediaPlayback=YES; [self.webView loadHTMLString:html baseURL:nil];

みんなの回答

回答No.1

http://okwave.jp/qa/q8472053.html で、その回答をした者です。 前回の回答時に試したプロジェクトが残っていたので そのまま再実行してみたら、確かに現在はインラインで 表示されずフルスクリーンになってしまいます。 どういうことか調べてみたところ、 http://code.google.com/p/gdata-issues/issues/detail?id=6296 にあるように、4/22時点で動かなくなったと問題報告されています。 また、 https://code.google.com/p/gdata-issues/issues/detail?id=5785 を見ると、今年の1月頃に一度動かなくなったことがあり、 それはすぐ直ったようですが、5/23以降また動かないとの報告が あり、以後直ったとの報告がありません。 このパラメータは、 https://developers.google.com/youtube/player_parameters?hl=ja#playsinline にある通り、YouTube APIの正式なドキュメントにも記載されている ものであり、決して隠しパラメータを勝手に使ったわけではない と思うのですが、一体googleは何を考えているのか正直よくわかりません。 (私はこういうアプリを作ってないので、特にgoogleに問い合わせた こともありません。) もし、このパラメータに頼らずにインラインで表示させたかったら どうにかしてYoutubeから送られてくるvideoタグにwebkit-playsinline属性を 追加するよう処理すればいいのですが、googleも直接の動画ファイルURLが 書かれているvideoタグはあまり見られたくないようで、難読化処理をして 簡単には見つけられなくなっていると思います。苦労して難読化処理して いるところを解析しても、それはgoogleのドキュメントに書かれてない 裏情報であり、難読化処理が変わればまた動作できなくなりますので やめた方がよいと思います。 どうしてもインラインで表示させたければ、googleに問題報告して 直してもらうしかないと思います。

iggiethedog
質問者

お礼

Lchan0211b 様 早速回答いただきありがとうございました。 googleに問い合わせてみたいと思います。 私では技術力が足りずに実現できないのか、 googleのせいで実現できないのか判断できなかったため 回答いただき大変助かりました。 google何を考えているのか悩ましい限りです。

関連するQ&A

  • UIWebViewに関する質問です

    iPhoneアプリの開発でUIWebViewを使用しています。 UIWebViewでサイトなどを表示すると一気にメモリを食われ困っていました。 なので、以下の様な記述を通信が終わった後に実行させる様にしました。 [_webView loadHTMLString:@"" baseURL:nil]; _webView.delegate = nil; _webView = nil; [_webView removeFromSuperview]; 実際に_webViewはnilにはなり、いくらかメモリも解放できるのですがそれでも残っているメモリがかなりあります。 [[NSURLCache sharedURLCache] removeAllCachedResponses]; _webView.dataDetectorTypes = UIDataDetectorTypeNone; [[NSURLCache sharedURLCache] setMemoryCapacity:0]; 上記の様なキャッシュをためない様な記述も試しましたが効果が薄いです。 UIWebViewで使用したメモリをまっさらにするにはどうしたらよいでしょうか?

  • androidアプリ開発 youtube表示方法

    androidアプリをjavaで開発してます。youtube動画を見れるアプリにしたいです。下記のコードでyoutubeサイトには行けるんですが、画象をクリックしても動画を見ることができません。どのようにすれば動画を見れるようになるでしょうか?どうぞよろしくお願いします。 package com.XXX; import android.app.Activity; import android.os.Bundle; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; public class WebViewActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.web); WebView webView = (WebView)findViewById(R.id.main_webview); webView.setWebViewClient(new WebViewClient()); webView.loadUrl(url); WebSettings webSettings = webView.getSettings(); webSettings.setJavaScriptEnabled(true); } }

  • objective-cで困っています。

    objective-cをトライ&エラーで試しながら学習しているのですが、 下記の内容で行き詰っており、知恵をお借りしたいと思い投稿しました。 現在tml5のcanvasを使ってお絵描きアプリを作りました。このcanvasに書き込んだデータをiPhoneのカメラロールに保存することをトライしています。いろいろ調べてみると「HTML5 CANVASの描画内容をUIImage経由でカメラロールに保存する」という記事をみつけました。http://lab.spec5zigen.com/archives/html5-canvasの描画内容をuiimage経由でカメラロールに保存する/ その記事を参考に #import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. // UIWebViewのインスタンス化 CGRect rect = self.view.frame; UIWebView *webView = [[UIWebView alloc]initWithFrame:rect]; // Webページの大きさを自動的に画面にフィットさせる webView.scalesPageToFit = YES; // デリゲートを指定 webView.delegate = self; // URLを指定 NSURL *url = [NSURL URLWithString:@"http://xxxxxxxxxxxxxxxxxxxxxx"]; NSURLRequest *request = [NSURLRequest requestWithURL:url]; // リクエストを投げる [webView loadRequest:request]; // UIWebViewのインスタンスをビューに追加 [self.view addSubview:webView]; } - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { if(![[request.URL.scheme] isEqualToString:@"sp5canvas2app"]){ return YES; } NSString * requestString = [[request URL] absoluteString]; NSArray *params = [requestString componentsSeparatedByString:@"data:image/png;base64,"]; // dataFromBase64String // NSData+Base64 Copyright 2009 Matt Gallagher. All rights reserved. // http://www.cocoawithlove.com/2009/06/base64-encoding-options-on-mac-and.html NSData * decodedData = [NSData dataFromBase64String:[params objectAtIndex:1]];//decode base64 to NSData UIImage *image = [UIImage imageWithData:decodedData]; UIImageWriteToSavedPhotosAlbum(image, self, nil, nil);//カメラロールに保存 return NO; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end としてみたのですが、 if(![[request.URL.scheme] isEqualToString:@"sp5canvas2app"]){ の行にExpected identifierというエラーが、 NSData * decodedData = [NSData dataFromBase64String:[params objectAtIndex:1]];の行にNo known class method for selector 'dataFromBase64String:'というエラーが という状況で詰っている状況です。 メソッドの定義や宣言されていないメソッドを使っているなどのエラーということを調べて分かったのですが、objective-cを始めたばかりで初歩的なミスかも知れませんがエラーの対応の仕方がまだまだよくわかっていません。 スキーマなど参考にしたサイトの内容も十分に理解しているのではないのですが、「sp5canvas2app」の部分は自由に変えていいのでしょうか? 解決の仕方を教えていただけないでしょうか? 宜しくお願いします。

  • iPhoneアプリでyoutubeの連続再生をする

    いつもお世話になります。 iPhoneアプリでyoutubeの連続再生をする方法を探しているのですが 見つけられずに困っております。 下記URL(Method 2: Embed the YouTube player in a UIWebViewの方) http://apiblog.youtube.com/2009/02/youtube-apis-iphone-cool-mobile-apps.html を参考に、1つの動画の再生は出来るようになりました。 これを複数の動画を連続で再生させる方法をご存知の方 どなたかご教授頂けませんでしょうか。 よろしくお願い致します。

  • iPhoneアプリ作成時のXcodeのエラー

    はじめまして。 iPhoneのアプリ作成に挑戦しています。 Xcode4のバージョンは 4.5.1です。 【はじめてのXcode4プログラミング】という参考書でIPhoneのカメラアプリを作る章があり、写真ライブラリから選択した画像を表示できるとのことです。 しかし、XcodeでRun(実行)すると、ViewController.mの最後から4行目【UIImage *originalImage = [info objectForkey:UIImagePickerControllerOriginalImage];】が赤くなり、【No visible @interface for 'NSDictionary' declares the selector 'objectForkey'】というエラー表示がでます。 全体のコードは下記の通りです。 ネットで調べてみましたが、解決方法がわかりません。 先に進めず困っています。 どうか解決方法を教えてください。 よろしくお願い致します。 ●ViewController.h// // ViewController.h // CameraApp // #import @interface ViewController : UIViewController - (IBAction)pressCameraButton:(id)sender; @property (weak, nonatomic) IBOutlet UIImageView *imageView; @end ●ViewController.m // // ViewController.m // CameraApp // #import “ViewController.h” @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } - (IBAction)pressCameraButton:(id)sender { UIImagePickerController *picker = [[UIImagePickerController alloc] init]; picker.delegate = self; picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; [[self presentViewController:picker animated:YES completion:nil];} - (void)imagePickerController:(UIImagePickerController*)Picker didFinishPickingMediaWithInfo:(NSDictionary*)info { [self dismissViewControllerAnimated:YES completion:nil]; UIImage *originalImage = [info objectForkey:UIImagePickerControllerOriginalImage]; // ↑↑ 上記の行でエラーが出ます self.imageView.image = originalImage; } @end

  • Xcodeでの画面遷移について

    Xcode5.0でアプリを作成しています。 アプリがバックグラウンドから再びアクティブになるときに画面遷移の処理をするために 以下の方法にてAppDelegateのapplicationDidBecomeActiveからView Controllerに処理を渡しています。 AppDelegate.m - (void)applicationDidBecomeActive:(UIApplication *)application { [[NSNotificationCenter defaultCenter] postNotificationName:@"applicationDidBecomeActive" object:nil]; } ViewController.m { [super viewDidLoad]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationDidBecomeActive) name:@"applicationDidBecomeActive" object:nil]; } - (void)applicationDidBecomeActive { ViewController *View = [self.storyboard instantiateViewControllerWithIdentifier:@"SecondView"]; [self presentModalViewController:View animated:YES]; } ViewController.mの- (void)applicationDidBecomeActiveで画面遷移の処理をしたいのですが、ViewDidAppearでは出来る画面遷移がapplicationDidBecomeActiveでは実行されない状態です。 ググって調べたところ、読み込みのタイミングが問題らしいことはなんとなく解ったのですが、 どうにかして、- (void)applicationDidBecomeActiveと同じタイミング(アプリがアクティブになったとき)で画面遷移を行う方法はありますでしょうか?

  • iPhoneアプリの開発についてです。

    ウェブサイトをローカルに保存しオフラインでUIWebViewに表示したいです。 http://blog.livedoor.jp/sionami/archives/3551091.htmlのサイトを参考にし実行してみましたが、オフラインでは表示されませんでした。また、表示されたサイトは(オンライン時)スマートフォン向けだったページがPC版の表示で表示されました。 以下が実行したプログラムです。コードの一部が間違っているのでしょうか。それともやり方そのものが間違っているのでしょうか。ご指摘お願いします。(エラー時のプログラムは省略しました) NSString *filePath; - (void)downloadHTML:(NSString *)html { NSString *directoryPath = [NSHomeDirectory() stringByAppendingPathComponent:@"tmp"]; //ダウンロードファイルの保存先 NSString *fileName = [html lastPathComponent]; filePath = [[directoryPath stringByAppendingPathComponent:fileName] stringByStandardizingPath];//保存したファイルへのパス NSURL *url = [NSURL URLWithString:html]; NSURLRequest *request = [NSURLRequest requestWithURL:url]; NSURLResponse *response = nil; NSError *error = nil; NSData *data = [ NSURLConnection sendSynchronousRequest : request returningResponse : &response error : &error ]; //ファイル書き込み NSFileManager *fm = [NSFileManager defaultManager]; [fm createFileAtPath:filePath contents:[NSData data] attributes:nil]; NSFileHandle *file = [NSFileHandle fileHandleForWritingAtPath:filePath]; [file writeData:data]; } - (IBAction)refresh:(UIButton *)sender { NSString *htmlStr = [NSString stringWithContentsOfFile:filePath]; [_myWebView loadHTMLString:htmlStr baseURL:nil]; } また、http://qiita.com/EntreGulss/items/8da6847e4dae59bfb1ebのサイトの方法も試しましたが同じくオフラインで表示されませんでした。

  • UIImageView使用時のメモリ枯渇について

    現在、パラパラ漫画を制作しているXcode初心者のものです。 初歩的な質問とは思いますが、いろいろと調べても自分で解決することが出来ず困っております。 どうぞご教授下さいますようお願い申し上げます。 本がめくれるように見せるため、ViewControllerにViewを設置し、そのViewの中にUiImageを配置して画像をUiImageに読み込むように制作しております。 また、Viewの部分をUIViewAnimationTransitionCurlUpによってページがめくれるようにしております。 画像は、事前にAllPagesという配列に読み込んでおります。 self.AllPages=[NSMutableArray array]; for (int i=1; i<=TotalPageAmount; i++) { UIImage *image=[UIImage imageNamed:[NSString stringWithFormat:@"%@_%d",PrePageName,i]]; [AllPages addObject:image]; } 具体的な処理のソースと致しましては、以下の処理をタイマーによって呼び出して処理を行っております。 —————————————————————————————————————- [UIView beginAnimations:nil context:NULL]; [UIView setAnimationDelegate:self]; [UIView setAnimationDuration:0.2]; [UIView setAnimationTransition:transition forView:self.ViewController cache:NO]; PageIndex++; self.UiImage.image = [self.AllPages objectAtIndex:PageIndex]; [UIView commitAnimations]; —————————————————————————————————————- メニューよりパラパラ漫画を数種類選べるようにしており、各漫画が200ページ(1枚の画像サイズは40kb程度)です。 これを実行すると、見れば見るほどメモリが使用されてしまいます。一度読み込んだものは、破棄されずそのままメモリに残っているように思われます。そのため、そのうちメモリワーニングが出てきてアプリが落ちてしまうという現象が起こっております。 ご教授いただくのに情報が不足している場合もあるかと存じますが、 どうぞ、ご指導くださいますようよろしくお願い申し上げます。

  • 埋め込み動画の最初の画像を別のものにするには?

    youtube等の動画を埋め込み、さらにデフォルトのサムネイル表示(youtube等で再生前に表示される画像)を別の静止画に指定したいのです。さらにその静止画をクリックすれば動画再生されるように。 下記のソースで埋め込みはできるのですが、別の静止画を置き換えるような方法がわかりません。 よろしくお願いします。 <iframe src="//www.youtube.com/embed/xxxxxxxxxxxx" width="500" height="300" frameborder="0" allowfullscreen></iframe>

  • itunesStoreに画面遷移せず移動する方法

    tableView上の選択行から そのtableview内でitunesStoreを表示したいのですが、 やり方が分かりませんでした。。 また、画面遷移が行われた場合のitunesStoreの表示はできましたが その場合、ナビゲーションバーの色がデフォルトに戻ってしまい困っております。 以下のやり方を試しましたが、うまくビュー内に表示することができず ご教授いただければと思い質問させていただきました。 よろしくお願い致します。 *---------- .h @interface recVCL : UITableViewController <UIWebViewDelegate> { UIWebView *wv; } @end .m - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { NSString *compURL = @"http://phobos.apple.com/WebObjects/"; if(NSOrderedSame == [[[request URL] absoluteString] compare:compURL options:NSCaseInsensitiveSearch range:NSMakeRange(0,[compURL length])]) { [[UIApplication sharedApplication] openURL:[request URL]]; } return YES; } - (void)viewDidLoad { [super viewDidLoad]; self.navigationItem.title = @"xxxxxxx"; self.navigationController.navigationBar.tintColor = [[[UIColor alloc] initWithRed:(xxxxxxxxxx) green:(xxxxxxxxxxx) blue:xxxxxxxxxx) alpha:1.0f] autorelease]; wv = [[UIWebView alloc] initWithFrame:self.view.bounds]; [wv delegate]; } - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { NSURL *url; NSURLRequest *urlRq; switch (indexPath.row) { case 0: url = [NSURL URLWithString:@"http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=xxxxxxxxxxxx&mt=x"]; urlRq = [NSURLRequest requestWithURL:url]; [wv loadRequest:urlRq]; [self.view addSubview:wv]; break; ... }

専門家に質問してみよう