Java /Android/使用保存的字符串路径播放视频
我是Android编程新手。我目前正在做一个类似视频播放器的应用程序,但有一个问题。该应用程序如下所示:Java /Android/使用保存的字符串路径播放视频,java,android,video,Java,Android,Video,我是Android编程新手。我目前正在做一个类似视频播放器的应用程序,但有一个问题。该应用程序如下所示: 我选择一个视频 视频路径将使用putString保存(函数)?正如您可以看到下面的代码 单击“播放”按钮时,将播放视频 现在,当我重新启动应用程序时,视频路径仍然保存,但如果我单击“播放”按钮,android将显示错误,“无法播放此视频”,因此我需要再次单击视频 我希望在我的应用程序中,即使你关闭应用程序,我也不需要在重新启动时选择要播放的视频。我想让它播放保存路径的视频。我希望这是可能
- 我选择一个视频
- 视频路径将使用putString保存(函数)?正如您可以看到下面的代码
- 单击“播放”按钮时,将播放视频
- 现在,当我重新启动应用程序时,视频路径仍然保存,但如果我单击“播放”按钮,android将显示错误,“无法播放此视频”,因此我需要再次单击视频
public class MainActivity extends Activity {
AlarmManager alarmManager;
private static int RESULT_LOAD_IMAGE = 1;
private static final int MY_INTENT_CLICK=302;
private PendingIntent pendingIntent;
private static MainActivity inst;
String meduri;
public static MainActivity instance() {
return inst;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SharedPreferences prefs = this.getSharedPreferences("myPrefsKey", Context.MODE_PRIVATE);
meduri = prefs.getString("key", "");
Button chs = (Button) findViewById(R.id.choose);
chs.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
chooseMed();
}
});
}
public void chooseMed(){
final Intent galleryIntent = new Intent(Intent.ACTION_GET_CONTENT);
galleryIntent.setType("video/*");
startActivityForResult(galleryIntent, RESULT_LOAD_IMAGE);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if(data != null) {
setVid(data.getDataString());
}
}
public void setVid(String uriq){
SharedPreferences prefs = this.getSharedPreferences("myPrefsKey", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putString("key", uriq);
editor.apply();
meduri = uriq;
}
public void playvid(){
VideoView vdeo = (VideoView) findViewById(R.id.videoview);
vdeo.setVisibility(View.VISIBLE);
vdeo.setVideoURI(Uri.parse(meduri));
vdeo.setMediaController(new MediaController(this));
vdeo.requestFocus();
vdeo.start();
}
}
我希望你能帮我解决我的问题 您从
ACTION\u get\u CONTENT
返回的Uri
不需要长时间可用。您可以临时访问其内容,但可能无法永久访问
这与Web开发非常相似。URL可能是您以后可以保存和使用的内容,但如果服务器需要会话cookie或其他形式的用户身份验证/授权,则该URL可能在将来不可用
如果您使用Android 4.4+上提供的存储访问框架,您可以请求持久Uri
权限,如果授予该权限,您将能够长期访问内容。那些Uri
值可以保存并在以后使用