我尝试获取YouTube视频网址的id
。以下是您的例子:
https://www.youtube.com/watch?v=Iz6aR-WATYY
如何才能获得此视频的ID?
这是video_Adapter
public class VideoAdapter extends RecyclerView.Adapter<VideoAdapter.MyViewHolder> {
private List<Video> videoList;
private Context context;
String videourl;
Intent intent;
public class MyViewHolder extends RecyclerView.ViewHolder {
public TextView title;
public ImageView image, videonextarrowImage;
public TextView desc;
public TextView videourl;
public MyViewHolder(View view) {
super(view);
title = (TextView) view.findViewById(R.id.video_title);
image = (ImageView) view.findViewById(R.id.video_imageView);
desc = (TextView) view.findViewById(R.id.video_desc);
videourl = (TextView) view.findViewById(R.id.video_url);
videonextarrowImage = (ImageView) view.findViewById(R.id.video_NextArrow);
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(context, Video_Activity.class);
context.startActivity(i);
}
});
}
}
public VideoAdapter(List<Video> videoList, Context context) {
this.videoList = videoList;
this.context = context;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.video_list_row, parent, false);
return new MyViewHolder(itemView);
}
@Override
public void onBindViewHolder(MyViewHolder holder, final int position) {
final Video video = videoList.get(position);
holder.title.setText(video.getTitle());
holder.videourl.setText(video.getVideourl());
//holder.image.setImageResource(R.drawable.more_selector);
holder.desc.setText(video.getDesc());
holder.videonextarrowImage.setImageResource(R.drawable.nextbutton);
context = holder.image.getContext();
Picasso.with(context).load("http://bitstobyte.in/upload/" + video.getImage()).placeholder(R.drawable.play).error(R.drawable.startyoutubevideo).resize(50, 50).into(holder.image);
holder.title.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String Title = video.getTitle();
String Desc = video.getDesc();
String[] links = new String[]{video.getVideourl()};
String[] ids = new String[links.length];
for (int i = 0; i < links.length; i++) {
ids[i] = links[i].split("v=")[1];
}
intent = new Intent(context, Video_Activity.class);
intent.putExtra("Video_title", Title);
intent.putExtra("Vide_desc", Desc);
intent.putExtra("Video_ID", ids);
context.startActivity(intent);
Toast.makeText(context, "You Clicked " + video.getTitle(), Toast.LENGTH_LONG).show();
}
});
}
@Override
public int getItemCount() {
return videoList.size();
}
}
这是video.java
public class Video extends VideoResponse{
public String title;
public String image;
public String desc;
private String videourl;
public Video(){
}
public Video(String title, String image, String desc,String videourl) {
this.title = title;
this.image = image;
this.videourl = videourl;
this.desc = desc;
}
public String getTitle() {
return title;
}
public void setTitle(String name) {
this.title = name;
}
public String getImage() {
return image;
}
public void setImage(String image) {
this.image = image;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public String getVideourl() {
return videourl;
}
public void setVideourl(String videourl) {
this.videourl = videourl;
}
}
这是video_activity.java
public class Video_Activity extends AppCompatActivity implements YouTubePlayer.OnInitializedListener {
TextView textView1, textView2;
ScrollView scrollView;
WebView webView;
VideoView videoView;
private MediaController mController;
private Uri uriYouTube;
private YouTubePlayerView youTubeView;
private static final int RECOVERY_DIALOG_REQUEST = 1;
Video video;
public String videourl;
// Google Console APIs developer key
// Replace this key with your's
public static final String DEVELOPER_KEY = "AIzaSyC0rjDLc0jkYY0Z66QgOnkNmkOAyOqpqnI";
// YouTube video id
//public static final String YOUTUBE_VIDEO_CODE = "yExScIwJftE";
String[] ids;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_video_);
getSupportActionBar().setTitle(Html.fromHtml("<font color='#fdfafa'> Video View </font>"));
final Drawable upArrow = getResources().getDrawable(R.drawable.abc_ic_ab_back_mtrl_am_alpha);
getSupportActionBar().setHomeAsUpIndicator(upArrow);
getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
YouTubePlayerSupportFragment frag = (YouTubePlayerSupportFragment) getSupportFragmentManager().findFragmentById(R.id.youtube_view);
if (frag == null) {
frag = YouTubePlayerSupportFragment.newInstance();
getSupportFragmentManager().beginTransaction().add(R.id.youtube_view, frag).commit();
}
frag.initialize(DEVELOPER_KEY, this);
Intent intent = getIntent();
if (null != intent) {
String Video_Title = intent.getStringExtra("Video_title");
String Video_Desc = intent.getStringExtra("Vide_desc");
ids = intent.getStringArrayExtra("Video_ID");
//Log.i("Video_Url", " " + YouTube_VideoPlayer);
textView1 = (TextView) findViewById(R.id.activity_video_Title);
textView1.setText(Video_Title);
textView2 = (TextView) findViewById(R.id.activity_video_desc);
textView2.setText(Video_Desc);
scrollView = (ScrollView) findViewById(R.id.Scroller_Id_video);
scrollView.post(new Runnable() {
@Override
public void run() {
scrollView.smoothScrollTo(0, textView2.getBottom());
}
});
}
}
@Override
public void onInitializationFailure (YouTubePlayer.Provider provider,YouTubeInitializationResult errorReason){
if (errorReason.isUserRecoverableError()) {
errorReason.getErrorDialog(this, RECOVERY_DIALOG_REQUEST).show();
}
else
{
//String YouTube_VidePlayer = getIntent().getStringExtra("Video_Player");
String YouTube_VideoPlayer = String.format(getString(R.string.error_player), errorReason.toString());
Toast.makeText(this, YouTube_VideoPlayer, Toast.LENGTH_LONG).show();
}
}
@Override
public void onInitializationSuccess (YouTubePlayer.Provider provider,YouTubePlayer player,boolean wasRestored){
if (!wasRestored) {
// loadVideo() will auto play video
// Use cueVideo() method, if you don't want to play it automatically
//player.cueVideo(YouTube_VideoPlayer);
player.cueVideo(String.valueOf(ids));
// Hiding player controls
//player.setPlayerStyle(YouTubePlayer.PlayerStyle.CHROMELESS);
}
}
@Override
protected void onActivityResult ( int requestCode, int resultCode, Intent data){
if (requestCode == RECOVERY_DIALOG_REQUEST) {
// Retry initialization if user performed a recovery action
getYouTubePlayerProvider().initialize(Video_Config.DEVELOPER_KEY, this);
}
}
private YouTubePlayer.Provider getYouTubePlayerProvider() {
return (YouTubePlayerView) findViewById(R.id.youtube_view);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if(item.getItemId() == android.R.id.home){
finish();
return true;
}
return super.onOptionsItemSelected(item);
}
}
答案 0 :(得分:1)
您可以使用String.split(regex)
例如:
String s = "https://www.youtube.com/watch?v=Iz6aR-WATYY";
String id = s.split("v=")[1];