use of com.google.android.exoplayer2.source.ExtractorMediaSource in project NiceMusic by lizixian18.
the class ExoPlayback method play.
@Override
public void play(SongInfo info) {
mPlayOnFocusGain = true;
mFocusAndLockManager.tryToGetAudioFocus();
registerAudioNoisyReceiver();
String mediaId = info.getSongId();
boolean mediaHasChanged = !TextUtils.equals(mediaId, mCurrentMediaId);
if (mediaHasChanged) {
mCurrentMediaId = mediaId;
mCurrentMediaSongInfo = info;
}
if (mediaHasChanged || mExoPlayer == null) {
// release everything except the player
releaseResources(false);
String source = info.getSongUrl();
if (source != null) {
// Escape spaces for URLs
source = source.replaceAll(" ", "%20");
}
if (mExoPlayer == null) {
mExoPlayer = ExoPlayerFactory.newSimpleInstance(mContext, new DefaultTrackSelector(), new DefaultLoadControl());
mExoPlayer.addListener(mEventListener);
}
final AudioAttributes audioAttributes = new AudioAttributes.Builder().setContentType(CONTENT_TYPE_MUSIC).setUsage(USAGE_MEDIA).build();
mExoPlayer.setAudioAttributes(audioAttributes);
DataSource.Factory dataSourceFactory = new DefaultDataSourceFactory(mContext, Util.getUserAgent(mContext, "musiclibrary"), null);
ExtractorsFactory extractorsFactory = new DefaultExtractorsFactory();
// MediaSource mediaSource = new ExtractorMediaSource(Uri.parse(source), dataSourceFactory, extractorsFactory, null, null);
MediaSource mediaSource = buildMediaSource(Uri.parse(source), null, null, null);
mExoPlayer.prepare(mediaSource);
mFocusAndLockManager.acquireWifiLock();
}
configurePlayerState();
}
use of com.google.android.exoplayer2.source.ExtractorMediaSource in project Camera-Roll-Android-App by kollerlukas.
the class VideoPlayerActivity method initPlayer.
private void initPlayer() {
// Produces DataSource instances through which media data is loaded.
DataSource.Factory dataSourceFactory = new DefaultDataSourceFactory(this, Util.getUserAgent(this, getString(R.string.app_name)), null);
// Produces Extractor instances for parsing the media data.
ExtractorsFactory extractorsFactory = new DefaultExtractorsFactory();
// This is the MediaSource representing the media to be played.
MediaSource videoSource = new ExtractorMediaSource(videoUri, dataSourceFactory, extractorsFactory, null, null);
DefaultRenderersFactory renderersFactory = new DefaultRenderersFactory(this);
// Create the player
player = ExoPlayerFactory.newSimpleInstance(renderersFactory, new DefaultTrackSelector(new AdaptiveTrackSelection.Factory(null)), new DefaultLoadControl());
// Bind the player to the view.
SimpleExoPlayerView simpleExoPlayerView = findViewById(R.id.simpleExoPlayerView);
simpleExoPlayerView.setPlayer(player);
// Prepare the player with the source.
player.prepare(videoSource);
player.setRepeatMode(Player.REPEAT_MODE_ONE);
player.setPlayWhenReady(true);
final ImageButton playPause = findViewById(R.id.play_pause);
player.addListener(new SimpleEventListener() {
@Override
public void onPlayerStateChanged(boolean playWhenReady, int playbackState) {
// update PlayPause-Button
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && showAnimations()) {
if (player.getPlayWhenReady()) {
playPause.setImageResource(R.drawable.play_to_pause_avd);
} else {
playPause.setImageResource(R.drawable.pause_to_play_avd);
}
Drawable d = playPause.getDrawable();
if (d instanceof Animatable) {
((Animatable) d).start();
}
} else {
if (player.getPlayWhenReady()) {
playPause.setImageResource(R.drawable.ic_pause_white);
} else {
playPause.setImageResource(R.drawable.ic_play_arrow_white);
}
}
}
});
}
Aggregations