2

現在実行中のアクティビティの上にビデオを追加しています。私は以下を使用してこれを達成することができました:

this.surface    = new SurfaceView(getApplicationContext());
this.surface.getHolder().addCallback(this);
WindowManager.LayoutParams params = new WindowManager.LayoutParams();
params.height       = 500;
params.width        = 500;
this.activity.addContentView(surface, params);

次に、this.surface から取得した SurfaceHolder に MediaPlayer をアタッチします。1 つのことを除いて、私が必要としているとおりに動作します。SurfaceView は、画面の状態が変化するまで画面に表示されません。ビューをアクティビティに追加するには、画面をオフにする必要があります。その後、すべてが期待どおりに機能します。

なぜこれが起こっているのか誰にも手がかりがありますか?

編集: Kelvin Trinh へのコメントから詳細情報を追加しました。

ネイティブ ビデオ コンポーネントを使用するための AIR ネイティブ拡張です。レイアウトなどにはアクセスできませんが、AIR アプリケーションがメインのアクティビティとして機能します。this.activity は、拡張コンテキスト (AIR と Java アプリの通信方法) から取得したメイン アクティビティです。私が達成したアプリの上に表示するビデオが必要です。

4

1 に答える 1

1

コードをラップするクラスを提供していませんが、それはメイン アクティビティのビューだと思います。

this.activity.addContentView(surface, params);は、特定のビューにいるときにアクティビティにサーフェス ビューを追加することを示しています。これは、アクティビティのビュー階層にサーフェスの参照を追加するだけであり、アクティビティがリロード(再作成、再起動、または再開)されたときにのみ更新されます。

于 2012-09-05T02:20:42.563 に答える