0

ビデオ ファイルへのパスを正しく宣言するのに問題があります。私は多くの異なるリソースを見てきましたが、それらはすべてほぼ同じことを言っています...

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.widget.MediaController;
import android.widget.VideoView;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    VideoView infinnittiVid = (VideoView)findViewById(R.id.videoView1);
    infinnittiVid.setVideoPath("/SdCard/infinnitti.mp4");

    MediaController infinnittiController = new MediaController(this);
    infinnittiVid.setMediaController(infinnittiController);
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}
}

何をしても、デバイスで「このビデオを再生できません」というエラーが表示されます。文字列をハードコードするべきではないことはわかっています...問題はアドレスにあるようです。複数のフォーマットを試しましたが、ギャラリー アプリで再生されますが、このコードは機能しません。これが問題であるという疑いを確認するためにパスをいじりましたが、常に同じエラーが発生し、パスを論理的に変更してもVideoViewが機能しません。

誰が私が間違っているのか教えてもらえますか??

4

2 に答える 2

0

これが問題です

infinnittiVid.setVideoPath("/SdCard/infinnitti.mp4");

このようにする必要があります

  String path= Environment.getExternalStorageDirectory().getAbsolutePath();
    path=path+"/infinnitti.mp4";

Uri mUri = Uri.fromFile(new File(path));
infinnittiVid.setVideoURI(mUri);
于 2013-03-02T13:03:46.650 に答える
0

彼らは 2 つの方法

初め

String path= Environment.getExternalStorageDirectory().getPath();
infinnittiVid.setVideoPath(path+"/infinnitti.mp4");

2番

VideoView infinnittiVid = (VideoView)findViewById(R.id.videoView1);
infinnittiVid.setVideoPath("/mnt/sdcard/infinnitti.mp4");
于 2013-03-02T13:24:57.877 に答える