Java 如何使用Jsoup从youtube获取图像?
我想当用户点击图标“添加视频”按钮时,创建一个对话框,他可以在其中插入一个链接,并复制该链接 之后,按“确定”按钮将加载用户输入的页面(从youtube),并从那里获取视频ID。将存储有关此元素的所有信息Java 如何使用Jsoup从youtube获取图像?,java,android,youtube,jsoup,metadata,Java,Android,Youtube,Jsoup,Metadata,我想当用户点击图标“添加视频”按钮时,创建一个对话框,他可以在其中插入一个链接,并复制该链接 之后,按“确定”按钮将加载用户输入的页面(从youtube),并从那里获取视频ID。将存储有关此元素的所有信息 搜索ID可以通过JSOUP库的方式进行,但我找到了一些示例。一旦我们获得了身份证,我们就试图得到一张照片 请提示,因为有可能生成一个带有添加视频的图像并将其添加到列表中,如屏幕截图所示。 我的代码与对话框: private void showAddVideoDialog(){ Aler
搜索ID可以通过JSOUP库的方式进行,但我找到了一些示例。一旦我们获得了身份证,我们就试图得到一张照片
请提示,因为有可能生成一个带有添加视频的图像并将其添加到列表中,如屏幕截图所示。
我的代码与对话框:
private void showAddVideoDialog(){
AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
builder.setTitle("Add video");
View viewInflated = LayoutInflater.from(getContext()).inflate(R.layout.view_layout_add_video, (ViewGroup) getView(), false);
final EditText input = (EditText) viewInflated.findViewById(R.id.edt_videoUrl);
builder.setView(viewInflated);
builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
m_Text = input.getText().toString();
Toast.makeText(getContext(), "ОК", Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
Toast.makeText(getContext(), "Отмена", Toast.LENGTH_SHORT).show();
}
});
builder.show();
}
非常感谢非讽刺/非屈尊回应
在下面的回答中,我假设用户已将youtube URL(youtubeUrl
)复制到您的应用程序输入字段中
示例代码
另见
ID是你的youtube ID社区只欢迎真诚的回应。你不必担心。如果你得到一个youtube链接,例如,那么你已经得到了id:
4XpnKHJAok8
,并且可以使用()@F.Klein检索图像。我真的不知道我应该在哪里/如何获得链接和id。看看这里:目前你的问题太广泛了(更简单的是:给我写一个应用程序),在stackoverflow的fitting topics定义范围内,尝试更具体或将问题分解为多个问题(请参见和)@F.Klein谢谢,但我在创建对话框方面没有问题。我不知道如何使用元数据(检查链接/获取id)超级响应,谢谢!但是我可以再问一个简短的问题,如何将它与我的对话结合起来?@vadimmorozov你能不能重新表述一下你的问题?当然可以,我会试试。我想将您的解决方案添加到我的片段中。因此,当用户插入指向“我的对话框”的链接并单击“确定”时,请运行您的解决方案。@VadimMorozov将解决方案放入一个方法中,然后调用该方法。是否可以在没有连接库(jsoup)的情况下实现?
String youtubeUrl = ...
// Extract video ID
Document videoPage = Jsoup.connect(youtubeUrl).get();
Element videoIdMeta = videoPage.select("div[itemtype=http://schema.org/VideoObject] meta[itemprop=videoId]").first();
if (videoIdMeta == null) {
// Unable to determine videoId ...
} else {
String videoId = videoIdMeta.attr("content");
// Fetch video image
String videoImageUrl = String.format("https://i.ytimg.com/vi/%s/hqdefault.jpg", videoId);
Connection.Response response = Jsoup //
.connect(videoImageUrl) //
.ignoreContentType(true) // Needed for fetching image
.execute();
// Load image for later use
Bitmap bmp = BitmapFactory.decodeStream(new ByteArrayInputStream(response.bodyAsBytes()));
}