在Android应用中播放youtube视频

时间:2014-05-06 09:39:04

标签: android youtube-api

大家好日子。请尝试从YouTube频道播放视频。让我分解一下 1:在第一个活动中,您将获得列表视图中的用户列表 2:当您单击用户时,它会将视频加载到另一个列表视图中。 一切都在这方面做得很好,但我不知道如何播放视频,当点击特定的视频时。这是我的代码。

package com.talagbe.videofeeds;
import java.util.ArrayList;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import com.loopj.android.http.AsyncHttpClient;
import com.loopj.android.http.AsyncHttpResponseHandler;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.widget.ListView;
import android.widget.Toast;
public class YoutubeVideos extends Activity {

ListView listv;
YoutubeAdapter yadapter;
ArrayList<Youtube> y_list;
String url;
String Channel;
Context context=null;
ProgressDialog mprogress;
@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.youtube);

    y_list= new ArrayList<Youtube>();
    listv = (ListView) findViewById(R.id.list2);

     Intent intent = getIntent();

     Bundle bundle = intent.getExtras();

     Channel = bundle.getString("Channel");

    init();
}
public void init(){
    Log.d("Chan",Channel);
    AsyncHttpClient LoadVideos = new AsyncHttpClient();
    LoadVideos.get("https://gdata.youtube.com/feeds/api/users/"+ Channel +"/uploads?v=2&alt=jsonc", new AsyncHttpResponseHandler(){

        public void onSuccess(String data){
            try {
                JSONObject videoObj = new JSONObject(data);
                //JSONArray jsonArray = json.getJSONObject("data").getJSONArray("items");
                JSONArray videosarray = videoObj.getJSONObject("data").getJSONArray("items");;
                for(int i=0; i<videosarray.length();i++){
                    Youtube yvideos = new Youtube();
                    JSONObject video = videosarray.getJSONObject(i);

                    String videourl = video.getJSONObject("player").getString("mobile");
                    yvideos.setVideoTitle(video.getString("title"));

                    yvideos.setThumbs(video.getJSONObject("thumbnail").getString("sqDefault"));
                    //yvideos.setVideourl(videourl);

                    y_list.add(yvideos);
                    Log.d("Title",video.getString("title"));
                    Log.d("Video",videourl);
                    Log.d("Thumb",video.getJSONObject("thumbnail").getString("sqDefault"));
                }

            } catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            YoutubeAdapter Adapter = new YoutubeAdapter(getApplicationContext(),R.layout.videos,y_list);
            listv.setAdapter(Adapter);
        }

        public void onStart(){
               mprogress = ProgressDialog.show(YoutubeVideos.this, "Connecting...", "Retrieveing Videos");
            }

        public void onFinish(){
            mprogress.dismiss();
        }

         public void onFailure(Throwable error, String content)
            {
             //Log.e("Error", content);
             Toast.makeText(getBaseContext(), "Error Connecting to the internet", Toast.LENGTH_LONG).show();

            }



    });

}

}

3 个答案:

答案 0 :(得分:1)

您可以使用Google提供的"YouTube Android Player API"来播放YouTube视频。

  

YouTube Android播放器API可让您合并视频   在您的Android应用程序中播放功能。 API定义   加载和播放YouTube视频(和播放列表)的方法   自定义和控制视频播放体验。

答案 1 :(得分:1)

答案 2 :(得分:0)

您可以关注YouTube API https://developers.google.com/youtube/android/player/reference/com/google/android/youtube/player/YouTubeIntents 或者您可以致电:

指示默认的YouTube默认播放器
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("vnd.youtube://" + id));
startActivity(intent);

id是url中问号后面的标识符。例如:youtube.com/watch?v=ID

另一种方式是:

Intent videoIntent = new Intent(Intent.ACTION_VIEW);
videoIntent.setData(url);
videoIntent.setClassName("com.google.anddroid.youtube", "com.google.android.youtube.WatchActivity");
startActivity(videoIntent);