4

res/raw私は次のようにAndroidリソースに追加したmp4ファイルをレンダリングしようとしています:

パブリッククラスMainはRoboActivityを拡張します
{{
    @InjectView(R.id.introVideo)
    プライベートVideoViewintroVideo;

    プライベートMediaPlayerプレーヤー;

    @オーバーライド
    public void onCreate(Bundle savedInstanceState)
    {{
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow()。setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN、
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.main);

        player = MediaPlayer.create(this、R.raw.intro_video2);
        SurfaceHolderホルダー=introVideo.getHolder();
        player.setDisplay(holder);
        player.start();

        player.setOnCompletionListener(new OnCompletionListener(){
            public void onCompletion(MediaPlayer mp)
            {{
                startActivity(new Intent(Main.this、Story.class));
                releasePlayer();
            }
        });
    }

    @オーバーライド
    保護されたvoidonPause()
    {{
        super.onPause();
        releasePlayer();
    }

    @オーバーライド
    保護されたvoidonDestroy()
    {{
        super.onDestroy();
        releasePlayer();
    }

    private void releasePlayer()
    {{
        if(player!= null)
        {{
            player.release();
        }
    }
}

しかし、私が経験するのはビデオの音だけで、SamsungGalaxyTabの画面は空白のままです。ソースファイルはmp4ファイル(H.264 AVC、960x640、30fps)であり、QuicktimeとVLCで完全に正常に再生できます。

Handbrakeを使用して元のビデオを480x320および25fpsにダウンスケールおよびサイズ変更しようとしましたが、Handbrakeでいくつかの設定を試しましたが、すべて成功しませんでした。

私のコードに明らかに何か問題がありますか、それともビデオ形式か何か他のものですか?私は何が間違っていますか?

よろしくお願いします、トーマス。

4

2 に答える 2

4

VideoView上記の方法で動作させることはできませんでしたが、Androidの提供されている機能を次のように単独で使用した場合に動作することがわかりました。

...
String videoUri = "android.resource://my.package.path/raw/intro_video";
introVideo.setVideoURI(Uri.parse(videoUri));
introVideo.start();
...
于 2011-07-08T21:29:23.387 に答える
2

10.1vタブ(3.0または3.1を実行)ですか、それとも2.2を実行している「古い」タブですか?

これによると:http : //developer.android.com/guide/appendix/media-formats.htmlH.264AVCには3.0以降が必要なようです。推奨値でもH264に問題があり、サウンドをさらにダウンスケールする必要がありました。調べる価値があるかもしれません。

于 2011-07-07T23:43:16.863 に答える