2

多くのビデオが埋め込まれたアプリを開発しようとしています。VideoView オブジェクトのビデオを使用して、Android の Media Player を呼び出したいと思います。ただし、これらの奇妙なエラーが発生します。

  • I/MediaPlayer(2874): 情報 (1,26)
  • E/MediaPlayer( 2874): エラー (-4,-4)
  • D/VideoView(2874): エラー: -4,-4

mp4 ビデオ、または携帯電話から記録されていない別の 3gp ビデオを再生しようとすると。私のコードは次のようなものです:

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.MediaController;
import android.widget.VideoView;

public class PlayTest2 extends Activity{
private MediaController ctlr;
public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.test2);

    try {
        VideoView video = (VideoView) findViewById(R.id.test2);
        // Load and start the movie
                video.setVideoPath("android.resource://com.example.child.protector/raw/output");
        ctlr=new MediaController(this);
        ctlr.setMediaPlayer(video);
        video.setMediaController(ctlr);
        video.start();
        //video.requestFocus();//this line is new
    }
    catch (Exception e) {
       Log.e("---------- this is my app --------", "error: " + e.getMessage(), e);

    }
}
}

私のレイアウトは次のようなものです:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">

<VideoView
android:id="@+id/test2"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center"
/>
</FrameLayout>

私のコードに何か問題がありますか?

そして、私のファイルがそこにあることを知っています。サンプルの 3GP ビデオでこのコードを実行したところ、問題なく動作しました (ただし、ビデオを携帯電話から録画してコンピューターにコピーし、Eclipse の /res/raw フォルダーの下にあるアプリに再パッケージ化しました)。 )。ただし、問題は、何らかの理由で、メディア プレーヤーが特定の 3GPP ファイルしか再生できないことです。MobileMediaConverter を使用して MP4 を 3GP に変換しようとすると、ラップトップでは再生されますが、このアプリでは再生されません。また、ビデオをファイルとして開いた場合 (つまり、Samsung Galaxy S 電話でデフォルトのビデオ プレーヤーを呼び出した場合) は問題なく動作することに注意してください (私の電話には機能があることを意味します)。だから私は疑問に思っています:

  • これはコードに何か問題がありますか?
  • これは mp4 から 3gp への変換エラーですか?

どんな助けでも大歓迎です。ありがとう!!

4

1 に答える 1

1

問題は、特定のコンバーター (設定が異なる) が、Samsung Galaxy Android デバイスで実行されないビデオ ファイルを作成することでした。ここのコードは一般的なものですが、ビデオ変換を行う場合、コーデックは H.264 のようなものでなければならないと思います。次に、約 5 つのビデオ コンバーターをダウンロードしましたが、そのうちの 2 つが実際に私のデバイスで再生できる 3GPP を作成します。したがって、他の誰かがこの問題を抱えている場合は、さまざまなコーデック/オーディオ設定で多数のビデオ コンバーターを試すことをお勧めします。最終的に、特定のケースで機能するものを見つけることができました

于 2011-11-23T04:04:18.393 に答える