Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 定义存储在Sd卡上的视频文件的路径时出错_Android_Video_Android Videoview_Filepath - Fatal编程技术网

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

Android 定义存储在Sd卡上的视频文件的路径时出错,android,video,android-videoview,filepath,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 { @

我在正确声明视频文件的路径时遇到问题。 我看了很多不同的资源,他们都说了几乎相同的事情,就是这个

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;
}
}
无论我做什么,设备上都会出现错误“无法播放此视频” 我知道我不应该硬编码字符串。。。 问题似乎与地址有关。我尝试过多种格式,它们在gallery应用程序中播放,但这段代码从来都不起作用。我把路径弄得乱七八糟,以证实我的怀疑,这就是问题所在,我总是会遇到同样的错误,对路径进行任何逻辑修改都不会给我一个正常的视频视图

谁能告诉我哪里出了问题吗?

这就是问题所在

infininitivid.setVideoPath(“/SdCard/infininiti.mp4”)

应该是这样的

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

Uri mUri = Uri.fromFile(new File(path));
infinnittiVid.setVideoURI(mUri);
它们有两种方式

首先

第二

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

我认为解决方案应该是这样的,因为Eclipse一直要求我使用:
Environment.getExternalStorageDirectory().toString()但我不确定如何声明它。尽管在三星平板电脑上,我仍然会遇到同样的错误。我在Logcate/MediaPlayer(8868)中得到这个错误:错误(1,-2147483648)是的,现在我将它设置为:
VideoView infinnitivid=(VideoView)findViewById(R.id.videoView1);字符串路径=Environment.getExternalStorageDirectory().getAbsolutePath();path=path+“/infinini.mp4”;urimuri=Uri.fromFile(新文件(路径));内文尼蒂维德。西维德乌里(mUri);MediaController infinnititController=新的MediaController(此);infinnittiVid.setMediaController(infinnittiController);}但我在设备上遇到同样的错误“无法播放此视频”,这太顽固了!!如果我没有看到它在本地画廊中播放,我会认为它是一种不兼容的格式。我看过很多不同的播放视频的方法,但我找不到任何有效的方法。是的,同样的事情。。。这两个看起来都应该工作,但我总是在设备上得到相同的错误。如果我没有在gallery应用程序上看到视频播放,我会认为是设备无法解码视频。
VideoView infinnittiVid = (VideoView)findViewById(R.id.videoView1);
infinnittiVid.setVideoPath("/mnt/sdcard/infinnitti.mp4");