我在正确声明视频文件的路径时出现问题。 我看过很多不同的资源,他们都说了几乎同样的事情......
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。
谁能告诉我哪里出错?
答案 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");