0

Android 用の新しい YouTube Player API を Nexus 4 で問題なく動作させることができました。これを、Android 4.2 で提供されるマルチスクリーン API (つまり、Presentation および MediaRouter クラス) と組み合わせたいと考えています。

ただし、YouTubePlayerView は YouTubeBaseActivity を拡張したコンテキストで初期化する必要があるため、これを組み合わせることができないようです。リモート画面に描画する Presentation クラスで取得した Context インスタンスはこれを拡張しないため、新しい YouTubePlayerView や、YouTubeBaseActivity をコンストラクター パラメーターとして必要とするその他のクラスをインスタンス化することはできません。

これにより、Andorid 4.2 の新しい API を使用して YouTube プレーヤーをセカンダリ スクリーンに表示することができなくなります。

これに対する回避策、または Android 4.2 と新しいマルチスクリーン API をサポートする更新された API をリリースする予定はありますか?

ありがとう、エリック

4

1 に答える 1

0

この投稿で小さい文字で書かれているものはすべて無視してください。私はAndroid APIについて何も知りません...

これは可能だと思いますが、試したことがないので、うまくいくかどうかはわかりません。

免責事項: 私は Java 開発者ですが、Android アプリを開発したことはありません。私が言うことはすべて、ひとつまみの塩で取ってください。

YouTubeBaseActivityクラスを拡張し、 Presentationクラスから取得したContextインスタンスをラップする独自のクラスを作成してみてください。したがって、タイプContextの最終的な「wrappedContext」フィールドがあり、コンストラクターには、このフィールドを初期化するContextパラメーターがあります。

次に、可能な場合はラップされたオブジェクトのメソッドを呼び出して、必要なすべてのメソッド (すべてのスーパークラスの抽象メソッドと、おそらくいくつかの非抽象メソッド) を定義/オーバーロードします。

それができたら教えてください。Nexus 4 と SlimPort アダプターを購入して以来、ミラーリングが唯一の可能性なのか、セカンダリ ディスプレイに何か他のものを表示できるのか、解像度がセカンダリ ディスプレイで 1280x768。複数のディスプレイに新しい 4.2 API を使用しているアプリはまだ見たことがありません...

編集:ラップされたコンテキストはおそらく非最終的である可能性があり、セッター(setWrappedContext)も存在する可能性があります。

Edit2: 実際には、すべての Activity オブジェクトにラップされた Context が既に存在し ( ContextWrapperを参照)、 ContextWrapper も Context を拡張します。

だからここで何をすればいいのかわからない。さすがに無理かも…。

Edit3:まだ読んでいない場合は、このページが役立つかもしれません。

Edit4: YouTubePlayerView の代わりに YouTubePlayerFragment を使用してみまし? YouTubeBaseActivity を拡張する必要がないので、それが役立つようです...

于 2013-02-12T14:34:31.487 に答える