在我的Android应用程序中,我正在尝试使用create temp创建一个音乐文件并尝试阅读。现在我能够创建,但它给出了一个错误,说视频无法播放。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
//File newfile=new File("/data/data/com.ayansys.samplevideo/Music.3gp");
//String xyz=newfile.getAbsolutePath();
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN); // Sets the window in full screen
setContentView(R.layout.main);
// path.g
// Log.i("Raw folder path:", R.raw.music);
String path= musicFile();
try{
Thread.sleep(5000);
}
catch(InterruptedException e)
{
e.printStackTrace();
Log.i("exception raised",e.toString());
}
mVideoView = (VideoView) findViewById(R.id.surface_view);
// mVideoView.setVideoURI(Uri.parse("android.resource://com.ayansys.samplevideo/"+R.raw.music));
// File infile=new File("/data/data/com.ayansys.samplevideo/Video.3gp");
mVideoView.setVideoPath(path);
mVideoView.requestFocus();
mVideoView.start();
}
public String musicFile()
{
String temPath = null;
try{
File outFile=File.createTempFile("music", ".3gp", getDir(temPath, MODE_PRIVATE));
temPath=outFile.getAbsolutePath();
FileOutputStream f=new FileOutputStream(outFile);
//FileOutputStream fos = openFileOutput("music.3gp", Context.MODE_PRIVATE);
URL u = new URL("http://59.162.166.211/aptv-web/VODAFONE/STARONE/SarabhaivsSarabhai/J2ME/SarabhaivsSarabhai_05.3gp");
HttpURLConnection c = (HttpURLConnection) u.openConnection();
c.setRequestMethod("GET");
c.setDoOutput(true);
c.connect();
//FileOutputStream f = new FileOutputStream(new File("/sdcard/videooutput.mp4"));
InputStream in = c.getInputStream();
byte[] buffer = new byte[1024];
int len1 = 0;
while ( (len1 = in.read(buffer))!= -1 ) {
f.write(buffer,0,len1);
}
f.close();
String str=outFile.getAbsolutePath();
//outFile..close();
in.close();
}
catch(Exception e)
{
e.printStackTrace();
System.out.println("Exception raised in creating a file: "+e.toString());
}
return temPath;
}
}
我想玩这个。 请分享您宝贵的建议。
提前致谢
答案 0 :(得分:3)
Context.openFileOutput(String name, int mode)
在内部存储空间中打开一个文件。
我建议您阅读Android Data Storage Guide,因为它涵盖了内部和外部存储问题。