18

YouTubePlayerFragmentYouTube Android Player APIを使用していて、再生中の動画の上にコンテキスト情報とコントロールを表示するために、ビューを上にオーバーレイしたいと思います。

残念ながら、レイアウト階層のプレーヤーの上に1つ以上のビューがスタックされている場合はYouTubePlayerFragment、再生が正しく機能しないようです。YouTubePlayerView再生は、すぐに一時停止する前に0.5秒未満発生します。

この問題は、SDKに付属しているSimplePlayerFragmentデモの次のレイアウトを使用して再現できます。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

  <fragment
      android:name="com.google.android.youtube.player.YouTubePlayerFragment"
      android:id="@+id/youtube_fragment"
      android:layout_width="match_parent"
      android:layout_height="match_parent"/>

  <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:textAppearance="@android:style/TextAppearance.Small"
      android:layout_alignParentTop="true"
      android:text="@string/playerfragment_text"/>

</RelativeLayout>

両方FrameLayoutを使用してさまざまなレイアウト構成を試しRelativeLayoutましたが、問題は常に同じです。このAPIは「実験的」としてリリースされていることを認識していますが、これが既知の問題である場合、多くの実装にとってかなり大きな障害になります。誰かが良い解決策や回避策を持っていますか?

4

5 に答える 5

16

ジェフ-これは設計どおりに機能します。YouTubeプレーヤー(YouTube Androidプレーヤーを含む)へのオーバーレイはサポートされていません。オーバーレイが検出されると、再生が停止し、ログには問題のデバッグに役立つ情報が含まれます。アクションバーオーバーレイはサポートされています。詳細については、このデモをご覧ください:https ://developers.google.com/youtube/android/player/sample-applications#Overlay_ActionBar_Demo 。

于 2012-12-24T01:07:36.993 に答える
4

Youtube Playerは、ビューのオーバーレイを許可しません。すべてのビューにsetVisibility(View.GONE)を使用するだけでオーバーレイされます。

于 2014-02-11T03:21:13.537 に答える
3

Googleが指定したように、プレーヤーの上にオーバーレイとしてボタンを追加することはできません。そうしないと、プレーヤーは停止します。

https://developers.google.com/youtube/android/player/reference/com/google/android/youtube/player/YouTubePlayerView

ビデオの再生中、このビューの最小サイズは200x110dpであることに注意してください。ビューを小さくすると、動画の再生が自動的に停止します。また、ビデオの再生中にビューを他のビューとオーバーレイすることは許可されていません。

このビューはパディングをサポートしていません。同じ効果を得るには、ビューを別のViewGroupでラップするか、余白を付けます。

パディングはYouTubePlayerでもサポートされていません。

ビューをビデオにオーバーレイするには、 ExoPlayerを使用することをお勧めします。これはAndroid SDKの一部ではありませんが、Googleによって推奨されており、Android開発者向けドキュメントに含まれています。

http://google.github.io/ExoPlayer/

ExoplayerがYouTubeアプリケーションで使用されていることにも言及しておくとよいでしょう。

于 2015-09-12T15:13:29.647 に答える
0

プレーヤーのテーマをYouTubePlayer.PlayerStyle.CHROMELESSに設定してから、以下で独自のコントロールを実装できます。

カスタムレイアウトでシークバーを再実装する方法についての適切なリソースが見つからないという問題があります。

于 2014-02-23T23:02:10.337 に答える
0

ヴォラ!! この問題がロリポップ以上のデバイスで発生し、ステータスバーが原因であるというシナリオが1つあります。解決したステータスバーの問題を非表示にします。それが他の人を助ける場合の答えとしてそれを書いただけです:)

于 2017-06-02T09:42:55.347 に答える