/ Android /使用保存的字符串路径播放视频

时间:2015-11-30 14:18:04

标签: java android video

我是Android编程新手。我目前正在做像应用程序但有问题的视频播放器。该应用程序采用这种方式:

  • 我选择了一个视频
  • 使用putString(函数)保存视频路径?正如您可以看到下面的代码
  • 当'玩'按钮被点击,视频将播放
  • 现在,当我重新启动应用时,视频路径仍然保存,但如果我点击“播放”#39;按钮,android会显示错误,无法播放此视频'所以我需要再次重新制作视频。

我想在我的应用中使用即使您关闭应用,我也不需要在重新启动时选择要播放的视频。我想让它播放保存路径的视频。我希望这是可能的。

以下是MainActivity代码:

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();
}

}

我希望你能解决我的问题。 :)

1 个答案:

答案 0 :(得分:0)

Uri ACTION_GET_CONTENT无需长时间使用Uri。您可以临时访问其内容,但可能无法永久访问。

这与Web开发非常相似。 URL可能是您可以保存并稍后使用的内容,但如果服务器需要会话cookie或某种其他形式的用户身份验证/授权,则该URL可能在将来无法使用。

如果您使用Android 4.4+上提供的存储访问框架,则可以请求持久Uri权限,如果授予这些权限,您将获得对内容的长期访问权限。这些ExecuteStoreQuery值可以保存并稍后使用。