This repository has been archived by the owner on Sep 28, 2019. It is now read-only.
/
VideoConsumptionExampleFragment.java
101 lines (89 loc) · 4.02 KB
/
VideoConsumptionExampleFragment.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
/*
* Copyright (C) 2016 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
* in compliance with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the License for the specific language governing permissions and limitations under
* the License.
*/
package android.support.v17.leanback.supportleanbackshowcase.app.media;
import android.content.Context;
import android.media.AudioManager;
import android.net.Uri;
import android.os.Bundle;
import android.support.v17.leanback.app.VideoFragment;
import android.support.v17.leanback.app.VideoFragmentGlueHost;
import android.support.v17.leanback.media.MediaPlayerAdapter;
import android.support.v17.leanback.media.PlaybackGlue;
import android.support.v17.leanback.media.PlaybackTransportControlGlue;
import android.support.v17.leanback.widget.PlaybackControlsRow;
import android.util.Log;
public class VideoConsumptionExampleFragment extends VideoFragment {
private static final String URL = "https://storage.googleapis.com/android-tv/Sample videos/"
+ "April Fool's 2013/Explore Treasure Mode with Google Maps.mp4";
public static final String TAG = "VideoConsumption";
private VideoMediaPlayerGlue<MediaPlayerAdapter> mMediaPlayerGlue;
final VideoFragmentGlueHost mHost = new VideoFragmentGlueHost(this);
static void playWhenReady(PlaybackGlue glue) {
if (glue.isPrepared()) {
glue.play();
} else {
glue.addPlayerCallback(new PlaybackGlue.PlayerCallback() {
@Override
public void onPreparedStateChanged(PlaybackGlue glue) {
if (glue.isPrepared()) {
glue.removePlayerCallback(this);
glue.play();
}
}
});
}
}
AudioManager.OnAudioFocusChangeListener mOnAudioFocusChangeListener
= new AudioManager.OnAudioFocusChangeListener() {
@Override
public void onAudioFocusChange(int state) {
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mMediaPlayerGlue = new VideoMediaPlayerGlue(getActivity(),
new MediaPlayerAdapter(getActivity()));
mMediaPlayerGlue.setHost(mHost);
AudioManager audioManager = (AudioManager) getActivity()
.getSystemService(Context.AUDIO_SERVICE);
if (audioManager.requestAudioFocus(mOnAudioFocusChangeListener, AudioManager.STREAM_MUSIC,
AudioManager.AUDIOFOCUS_GAIN) != AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
Log.w(TAG, "video player cannot obtain audio focus!");
}
mMediaPlayerGlue.setMode(PlaybackControlsRow.RepeatAction.NONE);
MediaMetaData intentMetaData = getActivity().getIntent().getParcelableExtra(
VideoExampleActivity.TAG);
if (intentMetaData != null) {
mMediaPlayerGlue.setTitle(intentMetaData.getMediaTitle());
mMediaPlayerGlue.setSubtitle(intentMetaData.getMediaArtistName());
mMediaPlayerGlue.getPlayerAdapter().setDataSource(
Uri.parse(intentMetaData.getMediaSourcePath()));
} else {
mMediaPlayerGlue.setTitle("Diving with Sharks");
mMediaPlayerGlue.setSubtitle("A Googler");
mMediaPlayerGlue.getPlayerAdapter().setDataSource(Uri.parse(URL));
}
PlaybackSeekDiskDataProvider.setDemoSeekProvider(mMediaPlayerGlue);
playWhenReady(mMediaPlayerGlue);
setBackgroundType(BG_LIGHT);
}
@Override
public void onPause() {
if (mMediaPlayerGlue != null) {
mMediaPlayerGlue.pause();
}
super.onPause();
}
}