9

さて、私は人々がvimeoで抱えている他の問題の大部分を見回しましたが、私が抱えているのと同じ問題に彼らがぶつかったとは思いません。

iPhoneとiPadの両方のSafariアプリでvimeoビデオを開くと、どちらも問題なく動作します。

これで、UIWebViewを備え、vimeoプレーヤーのビデオをロードし、正常に動作するiPhoneアプリを作成しました。

問題は、同じアプリをiPadにインストールすると、vimeoプレーヤーがビデオのロードを拒否し、ハングしてスピナーが回転し続けるが、ビデオがロードされないことです。

しかし、その後私が行ったのは、iPadに合わせてサイズ変更または「2倍」に変更されたiPhoneアプリではなく、ネイティブiPadアプリとしてUIWebViewにvimeoプレーヤーのURLをロードする基本的なアプリを作成することでした。驚いたことに、これはうまくいきました。

だから今私は混乱しています...iPad用に設計されたアプリを実行していない場合、iPadがvimeoビデオを再生しないのはなぜですか?これを壊すかもしれない舞台裏で起こっている特別な魔法はありますか?

私はここで途方に暮れています、どんな助けもいただければ幸いです

4

2 に答える 2

1

問題は、Apple デバイスの Safari のものとは異なるユーザー エージェントにある可能性があります。UIWebView が無効な文字列を送信し、Vimeo (および場合によっては YouTube) が壊れます。

幸いなことに、次を使用してアプリのユーザー エージェントをオーバーライドできます (C#、十分にクリーンでない場合はお知らせください)。

NSDictionary dictionary = NSDictionary.FromObjectAndKey(new NSString("Mozilla/5.0 (" + (UIDevice.CurrentDevice.Model.Contains("iPad") ? "iPad" : "iPhone" ) +  "; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25"), new NSString("UserAgent"));
NSUserDefaults.StandardUserDefaults.RegisterDefaults(dictionary);

これにより、ビデオが正常に再生されます。

于 2013-09-19T18:56:00.543 に答える
1

デリゲート メソッドを実装します: shouldStartLoadWithRequest次に、そのメソッドで、要求された URL のタイプがVIDEOかどうかを検出するだけです。その場合は、以下のリンクにあるコードに従ってください。

Iphone アプリでサーバーからビデオ ファイルを再生する

これは、あらゆるビデオの再生に適しています。

于 2012-05-11T17:29:26.107 に答える