[Android] Youtube bài 1: Hướng dẫn tạo api key cho android youtube player
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 class
ActivityPlayYouTube 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 void
onInitializationFailure(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 void
onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == RECOVERY_DIALOG_REQUEST) {
// Retry initialization if user
performed a recovery action
getYouTubePlayerProvider().initialize(YoutubeDeveloperKey, this);
}
}
protected
YouTubePlayer.Provider getYouTubePlayerProvider() {
return
(YouTubePlayerView) findViewById(R.id.youtube_view);
}
@Override
public void
onInitializationSuccess(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 void
onItemClick(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: