0

Galaxy Tab 2 にビデオを入れようとしましたが、アプリケーションは起動しますが、画像がなく、音声しかありません。そのため、携帯電話 (Galaxy S2) でアプリケーションを実行しようとしましたが、動作します (サウンド + ビデオ) (私のビデオはサイズ 1280x800 の mp4 です)。

コード:

import android.app.Activity;
import android.net.Uri;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;
import android.widget.MediaController;
import android.widget.VideoView;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.activity_main);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);

    //VideoView view = new VideoView(this);
    VideoView view = (VideoView)findViewById(R.id.view);
    //view.setMediaController(new MediaController(this));
    //setContentView(view);
    view.setVideoURI(Uri.parse("android.resource://"+this.getPackageName()+"/"+R.raw.video4));
    view.requestFocus();
    view.start();
    }
}

XML:

<?xml version="1.0" encoding="utf-8"?>
<VideoView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:id="@+id/view"
android:layout_height="fill_parent" android:layout_alignParentRight="true"
android:layout_alignParentLeft="true" android:layout_alignParentTop="true"
android:layout_alignParentBottom="true" android:layout_gravity="center">
</VideoView>

ログキャット:

02-13 20:55:21.707: D/OpenGLRenderer(31903): Flushing caches (mode 1)
02-13 20:55:22.105: D/OpenGLRenderer(31903): Flushing caches (mode 0)
02-13 20:56:23.699: D/libEGL(31991): loaded /vendor/lib/egl/libEGL_POWERVR_SGX540_120.so
02-13 20:56:23.707: D/libEGL(31991): loaded /vendor/lib/egl/libGLESv1_CM_POWERVR_SGX540_120.so
02-13 20:56:23.707: D/libEGL(31991): loaded /vendor/lib/egl/libGLESv2_POWERVR_SGX540_120.so
02-13 20:56:23.902: D/OpenGLRenderer(31991): Enabling debug mode 0
02-13 20:56:23.933: I/MediaPlayer(31991): path is null
02-13 20:56:24.050: W/MediaPlayer(31991): info/warning (901, 0)
02-13 20:56:24.199: I/MediaPlayer(31991): Info (901,0)
02-13 20:56:24.199: E/MediaPlayer(31991): mOnInfoListener is null. Failed to send MEDIA_INFO message.
02-13 20:56:24.207: D/MediaPlayer(31991): getMetadata

ここでaviを試してみましたが同じでした。

ビデオのフォーマットを変更しました(flvを入れました)、動作しますが、logcatに問題があります:

02-15 21:53:06.189: D/libEGL(15791): loaded /vendor/lib/egl/libEGL_POWERVR_SGX540_120.so
02-15 21:53:06.189: D/libEGL(15791): loaded /vendor/lib/egl/libGLESv1_CM_POWERVR_SGX540_120.so
02-15 21:53:06.196: D/libEGL(15791): loaded /vendor/lib/egl/libGLESv2_POWERVR_SGX540_120.so
02-15 21:53:06.321: D/OpenGLRenderer(15791): Enabling debug mode 0
02-15 21:53:06.345: I/MediaPlayer(15791): path is null
02-15 21:53:06.689: D/MediaPlayer(15791): getMetadata
02-15 21:53:12.978: W/IInputConnectionWrapper(15791): showStatusIcon on inactive InputConnection
4

1 に答える 1

0

おそらくあなたの問題である「パスがnullです」、URIが正しいことを確認してください。また、android.resource の見た目も音も正しくありません...再確認してください。

アップデート

また、 start を呼び出す前に準備が完了するのを待つこともできます。

http://developer.android.com/reference/android/widget/VideoView.html#setOnPreparedListener(android.media.MediaPlayer.OnPreparedListener)

アップデート

この URI を試してください:

file:///android_asset/(filename.here)
于 2013-02-15T18:19:22.773 に答える