Download api và nhúng vào project
1. Truy cập vào địa chỉ
https://developers.google.com/youtube/android/player/downloads/
2.Download YouTubeAndroidPlayerApi, giải nén, vào thư mục libs copy file .jar và copy vào thư mục libs của project.
3.Click phải project, Build Path -> Configure Build Path -> Libraries Tab
4.Nhấn nút Add Jars -> Chọn Your project’s libs folder -> chọn YouTubeAndroidPlayerAPI.jar ->Ok
5.Order and Export Tab -> Check vào YouTubeAndroidPlayerAPI.jar – Ok
1. Truy cập vào địa chỉ
https://developers.google.com/youtube/android/player/downloads/
2.Download YouTubeAndroidPlayerApi, giải nén, vào thư mục libs copy file .jar và copy vào thư mục libs của project.
3.Click phải project, Build Path -> Configure Build Path -> Libraries Tab
4.Nhấn nút Add Jars -> Chọn Your project’s libs folder -> chọn YouTubeAndroidPlayerAPI.jar ->Ok
5.Order and Export Tab -> Check vào YouTubeAndroidPlayerAPI.jar – Ok
I : Tạo api key cho android youtube player
1.Truy cập địa chỉ https://console.developers.google.com/project với account google Nhấn nút Create Project nhập vào Project name -> nhấn nút create.
2. Sau khi tạo project xong chọn project chọn APIs&auth -> APIs và bật ON cho YouTube Data API v3.
3.Chọn Credentials -> chọn nút “Create new key”. Hộp thoại mở ra chọn Android key
4.Cửa sổ mới mở lên, để yên đó quay lại eclipse. Chọn Window->Preference-> Android -> Build để ý đường dẫn của Default debug keystore (chỉ có khi đã compiler project).
5. Mở command line (cmd) bằng quyền admin và đi vào thư mục jdk như hình
6. Gõ lệnh theo cú pháp
keytool –v –list –keystore “<duongdandenfile debug.keystore>”
khi nó hỏi password thì cứ enter.
Copy lại dòng SHA1. Máy tôi là : CE:33:FE:81:C9:03:1D:C7:F3:93:2A:62:2B:67:3F:C1:9C:BC:DA:88
7.Quay lại web, trong cửa sổ Configure ta paste SHA1 rồi thêm ; và đến tên project vào ô nhập rồi chọn nút Create ta sẽ có được api key như hình
Trên Android.
8.Tạo một activity mới. Bằng cách tạo layout và sửa như sau:
<?xml version="1.0"encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".TruitonYouTubeAPIActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world"/>
<com.google.android.youtube.player.YouTubePlayerView
android:id="@+id/youtube_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</RelativeLayout>
9 .Thêm trong manifest.xml activity mới như sau:
<activity
android:name="kinh.phat.youtube.ActivityPlayYouTube"
android:label="@string/title_activity_baigiang"
>
</activity>
10. Trong file java sửa như sau:
public classActivityPlayYouTube extends YouTubeBaseActivity implements
YouTubePlayer.OnInitializedListener {
private YouTubePlayer YPlayer;
private static final String YoutubeDeveloperKey = "YOUR_DEVELOPER_KEY_GOES_HERE";
private static final int RECOVERY_DIALOG_REQUEST = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_playyoutube);
YouTubePlayerView youTubeView = (YouTubePlayerView) findViewById(R.id.youtube_view);
youTubeView.initialize(YoutubeDeveloperKey, this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
//getMenuInflater().inflate(R.menu.you_tube_api, menu);
return true;
}
@Override
public voidonInitializationFailure(YouTubePlayer.Provider provider,
YouTubeInitializationResult errorReason) {
if(errorReason.isUserRecoverableError()) {
errorReason.getErrorDialog(this, RECOVERY_DIALOG_REQUEST).show();
} else {
String errorMessage = String.format(
"There was an error initializing the YouTubePlayer",
errorReason.toString());
Toast.makeText(this, errorMessage, Toast.LENGTH_LONG).show();
}
}
@Override
protected voidonActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == RECOVERY_DIALOG_REQUEST) {
// Retry initialization if user performed a recovery action
getYouTubePlayerProvider().initialize(YoutubeDeveloperKey, this);
}
}
protectedYouTubePlayer.Provider getYouTubePlayerProvider() {
return(YouTubePlayerView) findViewById(R.id.youtube_view);
}
@Override
public voidonInitializationSuccess(Provider provider,
YouTubePlayer player, boolean wasRestored) {
if (!wasRestored) {
YPlayer = player;
/*
* Now that this variable YPlayer is global you can access it
* throughout the activity, and perform all the player actions like
* play, pause and seeking to a position by code.
*/
YPlayer.cueVideo("2zNSgSzhBfM");
}
}
}
11. Sửa lại biến YoutubeDeveloperKey chính là key phát sinh từ trang web.
12. Hàm cuối cùng .cueVideo đối số truyền vô chính là mã của 1 video youtube.
13. Chạy và xem kết quả.
Ghép với bài playlist
Video đã lên, khi ghép nó chung với bài youtubeplaylist thì khi playlist hiện ra danh sách video, khi nhấn vào 1 video sẽ gọi qua đây và chiếu video được nhận.
Vậy trên activity hiện playlist có phần videoparser.java ta sẽ sửa như sau:
@Override
protected void onPostExecute(Void result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
dialog.dismiss();
//lv_video.setAdapter(new AdapterVideo(context,R.layout.list_row,menuitems,manghinh));
adapter=new LazyImageLoadAdapter(context, menuitems);
lv_video.setAdapter(adapter);
lv_video.setOnItemClickListener(new OnItemClickListener() {
@Override
public voidonItemClick(AdapterView<?> parent, View view,
int position, long id) {
// TODO Auto-generated method stub
String link=menuitems.get(position).get("link").toString();
//Toast.makeText(context, link,Toast.LENGTH_SHORT).show();
Intent i=new Intent(context,ActivityPlayYouTube.class);
i.putExtra("link",link);
context.startActivity(i);
}
});
}
(giá trị link là do lệnh String link = player.getString("default"); ở mà ta lấy ra từ json). Trên mã lệnh trên ta còn thấy đưa link qua cho class ActivityPlayYouTube.
Trong ActivityPlayYouTube.java ta sửa thêm như sau:
1. Trong onCreate ta lấy và sửa link như sau:
Intent i=getIntent();
link=i.getStringExtra("link");
link=link.substring(link.indexOf("=")+1,link.indexOf("&"));
2. Kéo xuống bên dưới và đưa biến link vào cho hàm YPlayer.cueVideo
//YPlayer.cueVideo("2zNSgSzhBfM");
YPlayer.cueVideo(link);
3. Trong Manifest để cho activity nằm ngang và không có action bar ta sửa như sau:
<activity
android:screenOrientation="landscape"
android:theme="@android:style/Theme.NoTitleBar"
android:name="truyen.tau.youtubeplaylist.ActivityPlayYouTube"
android:label=""
>
</activity>
No comments:
Post a Comment