2016-04-30 6 views
1

VideoViewでデバイスから動画を再生しようとしています。ここに私のコードは次のとおりです。Android VideoViewがsdk 4.3で動作しない

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    vView = (VideoView) findViewById(R.id.videoView); 
    mc = new MediaController(this); 
    vView.setMediaController(mc); 
    String new_emulator_path = "/storage/emulated/0/Download/testvid.mp4"; 
    Uri uri = Uri.parse(new_emulator_path); 
    vView.setVideoURI(uri); 
    vView.requestFocus(); 
    mc.show(); 
    vView.start(); 
} 

...

<VideoView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/videoView" 
    android:layout_centerVertical="true" 
    android:layout_centerHorizontal="true" 
    android:adjustViewBounds="true" /> 

5.1で同じコードを使用している間、それはうまく演じているが、4.3以下では再生できません。以下はログ抽出です:

04-30 00:28:09.141 2293-2293/com.ebook.video D/MediaPlayer: getMetadata 
04-30 00:28:09.249 2293-2314/com.ebook.video E/MediaPlayer: error (1, -2147483648) 
04-30 00:28:09.257 2293-2293/com.ebook.video E/MediaPlayer: Error (1,-2147483648) 
04-30 00:28:09.257 2293-2293/com.ebook.video D/VideoView: Error: 1,-2147483648 

私はこのエラーコードに関して多くのスレッドを見ましたが、説明を理解できませんでした。

EDIT:mkv(H264 mpeg-4 AVC)、3gp(H263)、mp4(H264 mpeg-4 AVC)、flv(FLV1)のさまざまな形式のビデオを再生しようとしました。 3gpの拡張子とH263形式のビデオは上手く再生されますが、他の人は上記のようなエラーメッセージを出します。どのようにこれを解決するための任意のアイデア?

答えて

0

Documentationによると、AndroidはH265の前にアンドロイド5.1をサポートしていません。これは問題があると思います。 ExoPlayerを使用することができます(または、ExoMedia VideoPlayer & ExoPlayerの簡単なラッパー)。

ところで次のコードを使用することに役立ちます:

VideoView videoView = (VideoView) findViewById(R.id.videoView1); 
videoView.setVideoPath(YOUR_LOCAL_FILE_PATH); 
MediaController mediaController = new MediaController(this); 
mediaController.setAnchorView(videoView); 
videoView.setMediaController(mediaController); 
videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 
     @Override 
     public void onPrepared(MediaPlayer mp) { 
        Log.i(TAG,"Hoooray"); 
       } 
     }); 

videoView.start(); 

私はあなたがそう最初this関連記事を参照してくださいエミュレータでビデオを表示したい、あなたのコードから出ていたよう。

+0

私は4.3 sdkで再生しようとしたビデオのほとんどがH264です。ドキュメントによると、H.264 AVCはAndroid 3以降で利用可能です。私の解釈が間違っていれば私を修正してください。 – jay

+0

@AMRUTHAKALIVARAPUあなたはそうです。より多くのログを提供できますか?また、以下のuriからMp4ビデオをテストし、VideoViewでテストして正常に動作します。 http://www.sample-videos.com/ – Amir

+0

私があなたが言及したリンクからmp4ビデオをテストしましたが、私はまだ同じエラーが発生します。 – jay

関連する問題