我想通过单击 Button 来播放 YouTube 视频,但我收到了一个我不想显示的操作对话框窗口。我希望 YouTube 视频链接应在单击按钮时直接在 YouTube 应用程序中打开,而不是显示此选择操作窗口:
怎么可能?
代码:
playVideo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.youtube.com/watch?v=bzSTpdcs-EI")));
}
});
您可以设置youtube应用程序的包名称
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.youtube.com/watch?v=bzSTpdcs-EI"));
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setPackage("com.google.android.youtube");
startActivity(intent)
您可以使用以下代码直接向 youtube 应用程序启动意图。
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("https://www.youtube.com/watch?v=bzSTpdcs-EI"));
intent.setPackage("com.google.android.youtube");
startActivity(intent);
将此代码包含在 try catch 中以避免设备中不存在 youtube 时出现异常
我认为最好的方法是:
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("vnd.youtube://" + id));
startActivity(intent);
id 是 YykjpeuMNEk https://www.youtube.com/watch?v=YykjpeuMNEk
设备上没有 YouTube 应用的 Kotlin 建议错误处理:
try {
val intent = Intent(Intent.ACTION_VIEW)
intent.data = Uri.parse("https://www.youtube.com/watch?v=dQw4w9WgXcQ")
intent.setPackage("com.google.android.youtube")
startActivity(intent)
} catch (e : Exception) {
Snackbar.make(requireView(),"You don't have youtube? For real?",Snackbar.LENGTH_LONG).show()
}