DANH MỤC TÀI LIỆU
Tạo ứng dụng đa phương tiện thông minh với Google Cast
Google Cast - T o ng d ng đa ph ng ti n thông minhạ ứ ươ
Gi i thi uớ ệ
Xin chào các b n, bài vi t ngày hôm nay mình s gi i thi u t i các b n ế ẽ ớ ệ ớ
m t tính năng r t hay t i t Google - Google Cast. ớ ừ
Google Cast là gì ?
Đây là giao th c đ c quy n đ c phát tri n b i Google cho phép thi t b di ề ượ ể ở ế
đ ng hay máy tính cá nhân có th phát và ki m soát các n i dung âm thanh/ ể ể
video tr c tuy n trên các thi t b t ng thích. Có th là trên smart TV hay ế ế ị ươ
h th ng âm thanh gia đình. Hay nói 1 cách ng n g n là b n có th play ệ ố
video trên đi n tho i cá nhân và có th xem trên 1 màn hình l n c a TV. ớ ủ
R t thú v ph i không ? ị ả
Ch c h n các b n cũng đã đâu đó g p đ c bi u t ng trên ph i không ? ượ ể ượ
Vâng, đó chính là Cast Button M t s app thông d ng cũng đã có tính năng ộ ố
này , tiêu bi u nh YouTube.ể ư
Vào ngày 03/02/2014 thì Google Cast SDK chính th c đ c phát hành cho ứ ượ
phép các bên th 3 s a đ i và tích h p và ph n m m c a h m t cách ch ử ổ ủ ọ
đ ng nh t. C h i đ các anh em developer có th t làm app v i Google ơ ể ự
Cast là đây
Ph n ti p theo mình s h ng d n 1 vài b c c b n đ chúng ta có th ế ẽ ướ ướ ơ ả
l p trình v i cast trên thi t b Android. ế ị
Chu n bẩ ị
Đ th c hi n đ c m c tiêu c a bài vi t này cũng ph i có đ u t ể ự ượ ế ầ ư
xíu Hi n t i chúng ta s ph i c n thêm Cast Device. ả ầ Đây là 1 thi t b r i, ế ị ờ
có nhi m v làm trung gian giao ti p gi a thi t b g i ( app ) và thi t b ế ế ị ế ị
nh n ( n i phát video ).ậ ơ
Ho c bây gi cũng đã có các thi t b smart TV có h tr cast build-in, ế ỗ ọ
chúng ta s không c n ph i dùng đ n device r i nh trên. ế ờ ư
Xây d ng Android send app
đây mình s đ a ra các b c c b n đ có th chuy n ti p video/ âm ẽ ư ướ ơ ả ế
thanh qua cast device. Còn tr c đó các b n c n có app đã phát đ c video ướ ạ ầ ượ
r i nhé !
B1: Thêm th vi nư ệ
Tr c tiên chúng ta c n update Google Play Service. Sau đó thêm các ướ ầ
dependences sau
implementation 'com.android.support:mediarouter-v7:27.1.1'
implementation 'com.google.android.gms:play-services-cast-
framework:16.1.0'
B2: Thi t l p Cast Contextế ậ
Cast FrameWork s có 1 context global g i là CastContext. Nó s đi u ẽ ề
ph i m i ho t đ ng cast d li u. Đ kh i t o context này chúng ta c n ữ ệ ở ạ
dùng đ nế OptionsProvider
B2.1 T o OptionsProvider
public class CastOptionsProvider implements OptionsProvider {
@Override
public CastOptions getCastOptions(Context context) {
return new CastOptions.Builder()
.setReceiverApplicationId(context.getString(R.string.app_id))
.build();
}
@Override
public List<SessionProvider> getAdditionalSessionProviders(Context
context) {
return null;
}
}
Chúng ta s t o ra 1 class impliment OptionsProvider. Các b n c n l u ý ẽ ạ ư
fun getCastOptions. Đây chính là fun cho phép đ a ra các thi t l p thông ư ế ậ
qua cast builder. đây có r t nhi u thu c tính, nh ng cái quan tr ng b t ư ọ ắ
bu c ph i có là Receiver App Id. Nó chính là id c a app nh n ch y trên castộ ả ậ ạ
device. Nh có dòng config này thì app g i c a chúng ta m i tìm đ c các ử ủ ượ
cast device phù h p.
Có m t v n đ nh sau. Khi các b n t phát tri n app nh n, thì các b n s ộ ấ ư ạ ự
c n đăng kí v i google đ có th l y đ c Id c a nó. ể ể ượ ủ
Còn n u b n ch p nh n vi c s d ng app nh n m c đ nh, t c là không có ế ậ ệ ậ ặ
quy n s a đ i hay nâng c p gì thì có th truy n ID m c đ nh sau vào trong ề ử
config trên.
CastMediaControlIntent.DEFAULT_MEDIA_RECEIVER_APPLICATION_
ID
B2.2 Thêm metadata
Sau khi đã t o class provider và config thành công, chúng ta c n thêm d ầ ữ
li u vào th meta-data trong Manifest nh sauệ ẻ ư
<meta-data
android:name="com.google.android.gms.cast.framework.OPTIONS_PROVI
DER_CLASS_NAME"
android:value="com.google.sample.cast.refplayer.CastOptionsProvider" />
V i value chính là đ ng d n t i class provider mà chúng ta t o trên. ườ ạ ở
B2.3 Kh i t o cast contextở ạ
private CastContext mCastContext;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.video_browser);
setupActionBar();
mCastContext = CastContext.getSharedInstance(this);
}
Sau khi đã thêm meta-data thì ch c n dùng funỉ ầ getSharedInstance đ t o ể ạ
context này.
M t v n đ c n l u ý đây. Ngay t tên function các b n đã th y t share.ộ ấ ầ ư ấ ừ
Ý nghĩa c a nó là gì. Khi các b n đang màn hình A, play video r i cast lên ạ ở
TV. Xong sau đó các b n chuy n qua màn B t ng tác, và v n mu n ươ ẫ ố
remote đ c video đã đ c play A. Thì c activity A và B ta đ u ph i ượ ượ ở ả
dùng 1 th hi n c a CastContext. Hàm này có ý nghĩa nh v y. Đ ng ư ậ ươ
nhiên google cũng đ a ra l i khuyên là nên kh i t o CastContext m i ư ở ạ
activity trong app c a b n đ có th remote t i video đ c cast m t cách ủ ạ ượ
thu n ti n nh t.ậ ệ
B3. Thêm Cast Button
Button này đ c thi t k s n trong FrameWork. Nó có nhi m v tìm ki m ượ ế ế ẵ ế
Receiver App ( thu c cast device ) mà n m chung 1 m ng v i sender app ạ ớ
c a chúng ta.
S có 2 cách đ thêm button nàyẽ ể
Cách 1: Dùng Item Menu Thêm item sau vào file xml menu
<item
android:id="@+id/media_route_menu_item"
android:title="@string/media_route_menu_title"
app:actionProviderClass="android.support.v7.app.MediaRouteActionProvide
r"
app:showAsAction="always"/>
Sau đó trong activity
private MenuItem mediaRouteMenuItem;
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
getMenuInflater().inflate(R.menu.browse, menu);
mediaRouteMenuItem =
CastButtonFactory.setUpMediaRouteButton(getApplicationContext(), menu,
R.id.media_route_menu_item);
return true;
}
Cách 2: Thêm tr c ti p vào layoutự ế
<android.support.v7.app.MediaRouteButton
android:id="@+id/media_route_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:mediaRouteTypes="user"
android:visibility="gone" />
Trong activity cũng setup t ng tươ ự
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_layout);
thông tin tài liệu
Bài viết giới thiệu tới các bạn một tính năng rất hay tới từ Google - Google Cast.
Mở rộng để xem thêm
từ khóa liên quan
xem nhiều trong tuần
yêu cầu tài liệu
Giúp bạn tìm tài liệu chưa có

LÝ THUYẾT TOÁN


×