@Override protected void onPostCreate(Bundle savedInstanceState) { super.onPostCreate(savedInstanceState); if (getIntent().getExtras() != null) { boolean doPlayTrack = getIntent().getExtras().getBoolean("playTrack"); mArtistName = getIntent().getExtras().getString("artist"); ActionBar actionbar = getSupportActionBar(); if (mArtistName != null) { actionbar.setTitle(mArtistName); } else { actionbar.setTitle(""); } if (!mHasRestored) { mPosition = getIntent().getExtras().getInt("position"); ArrayList<TrackInfo> top10tracks = getIntent().getExtras().getParcelableArrayList("top10tracks"); PlayerFragment playerFragment = (PlayerFragment) getFragmentManager().findFragmentById(R.id.ss_player_fragment); playerFragment.initializeTrack(mArtistName, top10tracks, mPosition, doPlayTrack); } } }
@Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); if (id == R.id.ss_external_play) { FragmentManager fm = getFragmentManager(); PlayerFragment fragment = (PlayerFragment) fm.findFragmentById(R.id.ss_player_fragment); String url = fragment.getPreviewUrl(); Intent externalIntent = new Intent(Intent.ACTION_VIEW); externalIntent.setData(Uri.parse(url)); startActivity(externalIntent); finish(); } return super.onOptionsItemSelected(item); }
public void showDialog(int position) { Log.v(LOG_TAG, "showDialog"); if (mIsLargeLayout) { // The device is using a large layout, so show the fragment as a dialog mTracksListView.setItemChecked(position, true); FragmentManager fragmentManager = getActivity().getSupportFragmentManager(); PlayerFragment newFragment = new PlayerFragment(); newFragment.show(fragmentManager, "playerFragmentDialog"); } else { // The device is smaller, so show the fragment fullscreen Intent playerIntent = new Intent(getActivity(), PlayerActivity.class); startActivity(playerIntent); } }
@Override public void onReceive(Context context, Intent intent) { PlayerFragment playerFragment = (PlayerFragment) getFragmentManager().findFragmentById(R.id.ss_player_fragment); playerFragment.initializeMediaService(); }
public synchronized void playVideoModel(final DownloadEntry video) { try { if (playerFragment.isPlaying()) { if (video.getVideoId().equals(playerFragment.getPlayingVideo().getVideoId())) { logger.debug("this video is already being played, skipping play event"); return; } } } catch (Exception ex) { } try { if (playerFragment == null) { return; } // set callback for player events if (playerFragment != null) { playerFragment.setCallback(this); } playerFragment.setPrevNxtListners(next, prev); // reload this model environment.getStorage().reloadDownloadEntry(video); logger.debug("Resumed= " + playerFragment.isResumed()); if (!playerFragment.isResumed()) { // playback can work only if fragment is resume if (playPending != null) { playHandler.removeCallbacks(playPending); } playPending = new Runnable() { public void run() { playVideoModel(video); } }; playHandler.postDelayed(playPending, 200); return; } else { if (playPending != null) { playHandler.removeCallbacks(playPending); } } TranscriptModel transcript = null; try { transcript = environment.getServiceManager().getTranscriptsOfVideo(video.eid, video.videoId); } catch (Exception e) { logger.error(e); } String filepath = null; // check if file available on local if (video.filepath != null && video.filepath.length() > 0) { if (video.isDownloaded()) { File f = new File(video.filepath); if (f.exists()) { // play from local filepath = video.filepath; logger.debug("Playing from local file"); } } } else { DownloadEntry de = (DownloadEntry) environment.getDatabase().getIVideoModelByVideoUrl(video.url, null); if (de != null) { if (de.filepath != null) { File f = new File(de.filepath); if (f.exists()) { // play from local filepath = de.filepath; logger.debug("Playing from local file for " + "another Download Entry"); } } } } if (filepath == null || filepath.length() <= 0) { // not available on local, so play online logger.warn("Local file path not available"); filepath = video.getBestEncodingUrl(this); } playerFragment.play(filepath, video.lastPlayedOffset, video.getTitle(), transcript, video); } catch (Exception e) { logger.error(e); } }