定义存储在Sd卡上的视频文件的路径时出错

时间:2013-03-02 12:48:55

标签: android video android-videoview filepath

我在正确声明视频文件的路径时出现问题。 我看过很多不同的资源,他们都说了几乎同样的事情......

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。

谁能告诉我哪里出错?

2 个答案:

答案 0 :(得分:0)

这是问题

infinnittiVid.setVideoPath( “/ SD卡/ infinnitti.mp4”);

应该是这样的

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

Uri mUri = Uri.fromFile(new File(path));
infinnittiVid.setVideoURI(mUri);

答案 1 :(得分:0)

他们有两种方式

第一

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

第二

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