我有一个使用Intent选择器打开不同视频的应用程序。因此,您可以想象用户点击列表项,其中包含许多带有视频名称的元素。
现在,事情正常,
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(uriPath, "video/mp4");
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
但是当用户再次点击相同的项目时,会显示意图选择器。选择设备中的任何视频播放器即可恢复视频。
所以问题是,是否有任何标志或某种方式可以从一开始就启动视频?
这件事不仅发生在视频上,还发生在pdf上。如果pdf已打开并滚动到最后一页,那么再次从我的应用程序再次打开pdf将打开它与最后一页。
答案 0 :(得分:2)
hi hardikI had a similar application to be developed where different
从列表视图中选择不同的项目时,应播放视频。
我尝试测试我的应用程序视频恢复的行为 如果从应用程序再次启动,从上次播放帧。
对我来说,它总是从头开始。我在4.2.2上测试了这个 和4.4版本
启动视频的代码是这样的:
Intent in = new Intent(Intent.ACTION_VIEW);
in.setDataAndType(uripath, "video/*");
startActivity(in);
答案 1 :(得分:1)
这个问题已在Android play video intent with start position得到解答,特别是在CommonsWare的评论
中Even if there were, they would be on a per-app basis.
If you need this level of control over the video playback,
handle the video playback yourself within your own app
(e.g., VideoView), rather than pass control to third party apps
请参阅http://developer.android.com/reference/android/widget/VideoView.html#seekTo(int)和Playing a video in VideoView in Android
当您委托另一个有意图的应用程序时,您将获得所需的内容。你应该使用视频播放器在你的应用程序中控制它,如果你可能需要一个用于pdf视图小部件的库。类似于http://code.google.com/p/apv/。
答案 2 :(得分:0)
当您使用意图播放视频时,由代理应用程序决定如何解释和处理意图。除非代理应用程序(处理你正在触发的意图的那个)接受额外的参数来选择从开始到开始和恢复之间进行选择,否则你真的没什么可做的。
要完全控制,请使用您自己的视频播放器。
答案 3 :(得分:-1)
使用VideoView解决您的问题。
private VideoView myVideoView;
VideoView有一个内置的方法start(),它将从头开始你的视频:
@Override
public void onStart(){
super.onStart();
myVideoView.start();
}
你也可以在onResume方法上使用myVideoView.start()。
希望这会有所帮助。 :)
答案 4 :(得分:-1)
我完全不确定这一点。我同意其他观点,被调用的应用程序有责任按照自己的意愿处理意图。
然而,一个疯狂的猜测是改变uri:
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(
uriPath.buildUpon()
.appendQueryParameter("t", String.valueOf(System.currentTimeMillis()))
.build(),
"video/mp4"
);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
注意:我没有你提到的问题。视频总是重新启动。