6

再生速度を 0 から約 200% まで徐々に変更できるビデオ プレーヤーを作成する必要があります。高フレームレート (60 FPS) で記録された HD ムービーを再生するため、非常に高速に実行する必要があります。HD をサポートできない場合は、より低い解像度を使用できます。

このコードは、ハードウェア h264 デコーダーと ICS を備えた比較的ハイエンドの Android タブレットでのみ実行する必要があります (対象のタブレットでは Jelly Bean は使用できません)。

Android システムでビデオ再生速度を変更するためのサポートが見つかりませんでした。そこに到達するには JNI をかなり深く掘り下げる必要があると思いますが、最初にここで質問したいと思います。助けて。

4

2 に答える 2

2

vitamio から android カスタム プレーヤーを入手しました。その中で、メディア プレーヤーには setplayback speed のオプションがあります。つまり、mMediaPlayer.setPlaybackSpeed(速度); ビデオとオーディオの再生速度を設定します。パラメーター: 速度は、たとえば 0.8 または 2.0、デフォルトは 1.0、範囲は [0.5-2] です。

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

于 2013-10-18T06:42:28.390 に答える
1

私は似たようなことをすることを検討しており、ここにあなたに役立つかもしれない私の発見のいくつかがあります:

  1. android ndk r7 以降をダウンロードした場合、ndk->samples->native-media は、jni を使用してネイティブ android メディア プレーヤーを実行するサンプル プロジェクトです。
  2. これは OpenMAXAL.h ライブラリ (ndk に付属) を使用します。XA_IID_PLAYBACKRATE というインターフェイスに気付くでしょう。まともな参照カードを持っていますが、サンプルは薄いです。それは私たちが望むことをするべきであるように思えます。
  3. このサンプルは を示しているminSdkVersion = 14ため、お使いの ICS デバイスで動作するはずです。
  4. 私が利用できる唯一の ICS+ デバイス、4.2 (Jellybean) を実行している 16 GB の ASUS Nexus7 でこれをテストしたところ、メモのログに次の出力が得られました (自分のデバッグ ステートメントを省略しています)。

    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)
    

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

誰かがこれらのメモに従って実行に成功した場合は、コメントしてください。私はこれをハッキングし続け、これを機能させようとし、進捗があれば更新します。

于 2013-01-15T22:48:23.773 に答える