2012-11-05 12 views
6

再生速度を0から約200%に徐々に変更できるビデオプレーヤーを作成する必要があります。これは、高フレームレート(60FPS)で記録されたHDムービーを再生するので、非常に速く実行しなければなりません。 HDをサポートすることが不可能な場合は、解像度を下げることができます。Androidで可変ビデオ再生レート

コードはハードウェアh264デコーダとICS(ターゲットタブレットでは利用できないJelly Beanなし)の比​​較的ハイエンドのAndroidタブレットでのみ実行する必要があります。

Androidのシステムで動画の再生速度を変更するサポートはありませんでした.JNIのかなり深いところまで掘り下げて調べる必要があると思われますが、コード、提案または私を助けることができるポインタ。

私は似た何かを覗くと、ここであなたに有用である可能性が私の調査結果の一部ですされています

答えて

1

:あなたは、Android NDKのR7をダウンロードした以降、ndk-> samples->している場合は

  1. ネイティブメディアは、ネイティブアンドロイドメディアプレーヤーを実行するためにjniを使用するサンプルプロジェクトです。
  2. これは、OpenMAXAL.hライブラリ(ndkに含まれています)を使用しています.XA_IID_PLAYBACKRATEというインターフェイスに気付くでしょう。 decent reference cardにあるが、サンプルは薄い。私たちがしたいことをするべきだと思う。
  3. サンプルにはminSdkVersion = 14が表示されているため、ICSデバイスで動作するはずです。
  4. 01-15 14:19:33.384: W/libOpenSLES(6037): class MediaPlayer interface 1 requested but unavailable MPH=75 
    01-15 14:19:33.384: W/libOpenSLES(6037): Leaving Object::GetInterface (SL_RESULT_FEATURE_UNSUPPORTED) 
    01-15 14:19:33.384: A/libc(6037): jni/native-media-jni.c:409: Java_com_example_nativemedia_NativeMedia_createStreamingMediaPlayer: assertion "XA_RESULT_SUCCESS == res" failed 
    01-15 14:19:33.384: A/libc(6037): Fatal signal 11 (SIGSEGV) at 0xdeadbaad (code=1), thread 6037 (ple.nativemedia) 
    
    (私自身のデバッグ文を省略)私は、私に利用できる+デバイスのみICSでこれをテストした16ギガバイトASUS Nexus7は4.2(Jellybean)を実行している、と私はノートの私のログに次の出力を得ました

    は、メディアストリーム(またはファイル)をロードし、ネイティブメディアプレーヤインスタンスを作成する機能に含まれています。これらのエラーは、その機能が私のデバイス/デコーダ、OS、または私のファイルタイプでサポートされていないことを非常に指摘しています。私は実際にどちらが1つ(または組み合わせ)かはわかりませんが、最初のものであれば、必要な機能をサポートするデバイスがあまりないことを意味します。たぶんNexus7は外れ値ですが、残念ながらタブレットスペースのかなりの部分であり、他のデバイスとの一貫性はあまり期待できません。

誰もがこれらのノートをたどり、実行するためのものを得ることに成功している場合、コメントしない - 私はこれで離れてハッキング維持し、この作業を取得しようとすると、任意の進歩で更新されます。

2

私はビタミオからアンドロイドカスタムプレーヤーを手に入れました。その中で、メディアプレイヤーは、再生速度の設定が可能です。 すなわち mMediaPlayer.setPlaybackSpeed(スピード); ビデオとオーディオの再生速度を設定します パラメータ: スピード0.8または2.0、1.0へのデフォルト、[0.5-2]

での範囲は、リンクを参照してください:http://www.vitamio.org/en/docs/news/2013/0529/19.html

+1

は、あなたがそれを試してみましたか?彼らは言うように動くのだろうか? – safari

関連する問題