[Android] Youtube -Bài 2: Làm việc với Youtube ! Tạo PlayList cho youtube.
Làm việc với Youtube
Tạo PlayList cho youtube.
1. Login
Youtube. Xem video và add một số video vào playlist.
2. Nhấn
vào hình tài khoản chọn “VideoManager”
3. Chọn
vào playlist bên góc trái, rồi chọn 1 playlist để chơi.
4. Khi
playlist đã bắt đầu chơi ngó lên thanh địa chỉ.
Ví dụ địa chỉ như sau:
Trong đó thuộc tính list chính là
địa chỉ playlist của ta tức là theo địa chỉ trên thì playlist sẽ là:
PLM5NQydODud7vIkTjPtEUa8nDZHR4rvUJ
Xem API của Youtube và test playlist vừa có
1. Lên
google gõ vào “youtube playlist api” để tìm đến trang chỉ cách phát triển dựa
vào api của google. Ta thấy trang
2. Đọc
hướng dẫn để hiểu rõ hơn về API. Kéo xuống dưới và để ý đoạn truy xuất 1 single
playlist như hình
3. Đây
là đường dẫn sẽ trả về XML để lấy ra
playlist. Copy địa chỉ (chỉ phần http…) thôi. Và paste vào trình duyệt thay phần
id playlist bằng id playlist mà ta đã có ở trên để test xem đúng chưa.
4. Xem
theo kiểu JSON. Bằng cách bổ sung vào sao địa chỉ đối số alt=jsonc
Tham khảo thêm cách tìm
video trên youtube:
https://gdata.youtube.com/feeds/api/videos?q=insert_title_here
Bài 1 Đọc thông tin của youtube playlist parser.
1. Tạo
project mới đặt tên
vd:“youtubeplaylist1”.
2. Mở
file “manifest.xml” và cấp thêm quyền .
3. Mở
file java chính tạo ra một lớp con tên “ParseVideoYoutube” kế thừa từ lớp AsyncTask và override lên hàm
doInBackGround
private class ParseVideoYoutube extends AsyncTask<Void,
Void, Void> {
@Override
protected Void doInBackground(Void... params) {
return null;
}
4. Trong
hàm doInBackground ta khai báo 1 đối tượng URL và một đối tượng URLConnection
và và bắt try catch để bẫy ngoại lệ.
URL jsonURL;
URLConnection jc;
try {
} catch (Exception e) {
e.printStackTrace();
Log.d("loi", e.toString());
}
5. Trong
khối try ta bắt đầu viết. Khởi tạo URL chính là địa chỉ đến youtube playlist. Mở
URLConnection, tạo đối tượng InputStream
để lấy dữ liệu từ URLConnection bỏ vào InputStream. Dùng BufferedReader để đọc
từng dòng dữ liệu ra nối vào BufferedReader. Cuối cùng đóng kế nối và ép nó về
chuỗi. Đến đây ta đã có một chuỗi JSON.
jsonURL = new URL("http://gdata.youtube.com/feeds/api/playlists/" +
"PLM5NQydODud7vIkTjPtEUa8nDZHR4rvUJ" +
"?v=2&alt=jsonc");
jc = jsonURL.openConnection();
InputStream is = jc.getInputStream();
//doc du lieu
BufferedReader reader=
new BufferedReader(new
InputStreamReader(is,"iso-8859-1"),8);
StringBuilder sb=new StringBuilder();
String line=null;
while((line=reader.readLine())!=null)
{
sb.append(line+"\n");
}
is.close();
String jsonTxt=sb.toString(); //doc
StringBuilder vao chuoi
6. Tiếp
theo ta tạo ra đối tượng JSONObject, tạo tiếp JSONObject để lấy tiếp đến
“data”, tạo tiếp 1 mảng đối tượng JSONArray để lấy đến mảng “items”. Mảng items
này chứa các thông tin đến các file video có trong playlist. Trong for tạo ra đối
tượng để lấy từng item. Từ item vừa lấy Tạo tiếp JSONObject để lấy đến đối tượng
“video”. Từ đối tượng “video” ta sẽ lấy từng đối tượng con và lấy dữ liệu chuỗi
của từng thằng: title, player, default (chính là link), duration, thumbnail……
Cuối cùng để thuận tiện tạo ra mảng để lưu title, thumbnailUrl, length, link.
Xuất ra Logcat để xem trước.
JSONObject jj = new
JSONObject(jsonTxt);
JSONObject jdata = jj.getJSONObject("data");
JSONArray aitems = jdata.getJSONArray("items");
for (int i=0;i<aitems.length();i++)
{
JSONObject item =
aitems.getJSONObject(i);
JSONObject video = item.getJSONObject("video");
String title = video.getString("title");
JSONObject player =
video.getJSONObject("player");
String link = player.getString("default");
String length = video.getString("duration");
JSONObject thumbnail = video.getJSONObject("thumbnail");
String thumbnailUrl =
thumbnail.getString("hqDefault");
String[] deets = new String[4];
deets[0] = title;
deets[1] = thumbnailUrl;
deets[2] = length;
deets[3] = link;
Log.d("dulieu", deets[0]);
Log.d("duongdan",link);
}
7. Chạy
chương trình và theo dõi Logcat để thấy kết quả.
No comments: