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

他们有两种方式

第一的

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

第二

VideoView infinnittiVid = (VideoView)findViewById(R.id.videoView1);
infinnittiVid.setVideoPath("/mnt/sdcard/infinnitti.mp4");
于 2013-03-02T13:24:57.877 回答
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 回答