[Android] [PATCH 1/3] Handle videos playlists
Geoffrey Métais
geoffrey.metais at gmail.com
Wed Nov 25 18:12:52 CET 2015
Yes, better. Thx
On Wed, Nov 25, 2015 at 9:35 AM Edward Wang <edward.c.wang at compdigitec.com>
wrote:
> Video playlists? (for commit title)
>
> On Tue, Nov 24, 2015 at 8:25 AM, Geoffrey Métais
> <geoffrey.metais at gmail.com> wrote:
> > ---
> > .../src/org/videolan/vlc/PlaybackService.java | 13 +++++----
> > .../org/videolan/vlc/gui/audio/AudioPlayer.java | 11 --------
> > .../vlc/gui/video/VideoPlayerActivity.java | 31
> ++++++++++++++--------
> > 3 files changed, 28 insertions(+), 27 deletions(-)
> >
> > diff --git a/vlc-android/src/org/videolan/vlc/PlaybackService.java
> b/vlc-android/src/org/videolan/vlc/PlaybackService.java
> > index e9d4cf0..cfb5850 100644
> > --- a/vlc-android/src/org/videolan/vlc/PlaybackService.java
> > +++ b/vlc-android/src/org/videolan/vlc/PlaybackService.java
> > @@ -576,9 +576,12 @@ public class PlaybackService extends Service
> implements IVLCVout.Callback {
> > }
> >
> > changeAudioFocus(true);
> > - showNotification();
> > if (!mWakeLock.isHeld())
> > mWakeLock.acquire();
> > + if (switchToVideo())
> > + hideNotification();
> > + else
> > + showNotification();
> > break;
> > case MediaPlayer.Event.Paused:
> > Log.i(TAG, "MediaPlayer.Event.Paused");
> > @@ -722,8 +725,8 @@ public class PlaybackService extends Service
> implements IVLCVout.Callback {
> > public boolean switchToVideo() {
> > if (!canSwitchToVideo())
> > return false;
> > - if (!mMediaPlayer.getVLCVout().areViewsAttached())
> > -
> VideoPlayerActivity.startOpened(VLCApplication.getAppContext(),
> mCurrentIndex);
> > + VideoPlayerActivity.startOpened(VLCApplication.getAppContext(),
> > + getCurrentMediaWrapper().getUri(), mCurrentIndex);
> > return true;
> > }
> >
> > @@ -1142,7 +1145,7 @@ public class PlaybackService extends Service
> implements IVLCVout.Callback {
> > }
> >
> > playIndex(mCurrentIndex, 0);
> > - onMediaChanged();
> > + saveCurrentMedia();
> > }
> >
> > @MainThread
> > @@ -1161,7 +1164,7 @@ public class PlaybackService extends Service
> implements IVLCVout.Callback {
> > setPosition(0f);
> >
> > playIndex(mCurrentIndex, 0);
> > - onMediaChanged();
> > + saveCurrentMedia();
> > }
> >
> > @MainThread
> > diff --git a/vlc-android/src/org/videolan/vlc/gui/audio/AudioPlayer.java
> b/vlc-android/src/org/videolan/vlc/gui/audio/AudioPlayer.java
> > index 3ebdad1..6d7829a 100644
> > --- a/vlc-android/src/org/videolan/vlc/gui/audio/AudioPlayer.java
> > +++ b/vlc-android/src/org/videolan/vlc/gui/audio/AudioPlayer.java
> > @@ -95,7 +95,6 @@ public class AudioPlayer extends
> PlaybackServiceFragment implements PlaybackServ
> >
> > private boolean mShowRemainingTime = false;
> > private boolean mPreviewingSeek = false;
> > - private boolean mSwitchedToVideo = false;
> >
> > private PlaylistAdapter mPlaylistAdapter;
> >
> > @@ -176,7 +175,6 @@ public class AudioPlayer extends
> PlaybackServiceFragment implements PlaybackServ
> > public void onClick(View v) {
> > if (mService != null) {
> > mService.switchToVideo();
> > - mSwitchedToVideo = true;
> > }
> > }
> > });
> > @@ -301,7 +299,6 @@ public class AudioPlayer extends
> PlaybackServiceFragment implements PlaybackServ
> > if (mSettings.getBoolean(PreferencesActivity.VIDEO_RESTORE,
> false)){
> >
> Util.commitPreferences(mSettings.edit().putBoolean(PreferencesActivity.VIDEO_RESTORE,
> false));
> > mService.switchToVideo();
> > - mSwitchedToVideo = true;
> > return;
> > } else
> > show();
> > @@ -383,14 +380,6 @@ public class AudioPlayer extends
> PlaybackServiceFragment implements PlaybackServ
> > public void onMediaPlayerEvent(MediaPlayer.Event event) {
> > switch (event.type) {
> > case MediaPlayer.Event.Opening:
> > - mSwitchedToVideo = false;
> > - break;
> > - case MediaPlayer.Event.ESAdded:
> > - final boolean forceAudio =
> (mService.getCurrentMediaWrapper().getFlags() &
> MediaWrapper.MEDIA_FORCE_AUDIO) != 0;
> > - if (!forceAudio && !mSwitchedToVideo &&
> event.getEsChangedType() == Media.Track.Type.Video) {
> > - mService.switchToVideo();
> > - mSwitchedToVideo = true;
> > - }
> > break;
> > case MediaPlayer.Event.Stopped:
> > hide();
> > diff --git
> a/vlc-android/src/org/videolan/vlc/gui/video/VideoPlayerActivity.java
> b/vlc-android/src/org/videolan/vlc/gui/video/VideoPlayerActivity.java
> > index c81357b..cd7e4e0 100644
> > --- a/vlc-android/src/org/videolan/vlc/gui/video/VideoPlayerActivity.java
> > +++ b/vlc-android/src/org/videolan/vlc/gui/video/VideoPlayerActivity.java
> > @@ -240,9 +240,11 @@ public class VideoPlayerActivity extends
> AppCompatActivity implements IVLCVout.C
> > private boolean mHardwareAccelerationError;
> > private boolean mEndReached;
> > private boolean mHasSubItems = false;
> > + private boolean mForceStop = false;
> >
> > // Playlist
> > private int savedIndexPosition = -1;
> > + private boolean mHasNext = false;
> >
> > // size of the video
> > private int mVideoHeight;
> > @@ -536,7 +538,8 @@ public class VideoPlayerActivity extends
> AppCompatActivity implements IVLCVout.C
> > protected void onNewIntent(Intent intent) {
> > setIntent(intent);
> > if (mPlaybackStarted) {
> > - Uri uri = intent.hasExtra(PLAY_EXTRA_ITEM_LOCATION) ? (Uri)
> intent.getExtras().getParcelable(PLAY_EXTRA_ITEM_LOCATION) :
> intent.getData();
> > + Uri uri = intent.hasExtra(PLAY_EXTRA_ITEM_LOCATION) ?
> > + (Uri)
> intent.getExtras().getParcelable(PLAY_EXTRA_ITEM_LOCATION) :
> intent.getData();
> > if (uri == null || uri.equals(mUri))
> > return;
> > stopPlayback();
> > @@ -820,7 +823,8 @@ public class VideoPlayerActivity extends
> AppCompatActivity implements IVLCVout.C
> > time = 0;
> > else
> > time -= 2000; // go back 2 seconds, to compensate loading
> time
> > - mService.stop();
> > + if (mForceStop || !mHasNext)
> > + mService.stop();
> >
> > SharedPreferences.Editor editor = mSettings.edit();
> > // Save position
> > @@ -885,8 +889,8 @@ public class VideoPlayerActivity extends
> AppCompatActivity implements IVLCVout.C
> > public static void start(Context context, Uri uri, String title) {
> > start(context, uri, title, false, -1);
> > }
> > - public static void startOpened(Context context, int openedPosition)
> {
> > - start(context, null, null, false, openedPosition);
> > + public static void startOpened(Context context, Uri uri, int
> openedPosition) {
> > + start(context, uri, null, false, openedPosition);
> > }
> >
> > private static void start(Context context, Uri uri, String title,
> boolean fromStart, int openedPosition) {
> > @@ -895,10 +899,11 @@ public class VideoPlayerActivity extends
> AppCompatActivity implements IVLCVout.C
> > intent.putExtra(PLAY_EXTRA_ITEM_LOCATION, uri);
> > intent.putExtra(PLAY_EXTRA_ITEM_TITLE, title);
> > intent.putExtra(PLAY_EXTRA_FROM_START, fromStart);
> > - intent.putExtra(PLAY_EXTRA_OPENED_POSITION, openedPosition);
> >
> > - if (openedPosition != -1)
> > - intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK |
> Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
> > + if (openedPosition != -1) {
> > + intent.putExtra(PLAY_EXTRA_OPENED_POSITION, openedPosition);
> > + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
> > + }
> >
> > context.startActivity(intent);
> > }
> > @@ -1011,8 +1016,10 @@ public class VideoPlayerActivity extends
> AppCompatActivity implements IVLCVout.C
> > endDelaySetting();
> > } else if (BuildConfig.tv && mShowing && !mIsLocked) {
> > hideOverlay(true);
> > - } else
> > + } else {
> > + mForceStop = true;
> > exitOK();
> > + }
> > }
> >
> > @Override
> > @@ -1031,13 +1038,13 @@ public class VideoPlayerActivity extends
> AppCompatActivity implements IVLCVout.C
> > showOverlayTimeout(OVERLAY_TIMEOUT);
> > switch (keyCode) {
> > case KeyEvent.KEYCODE_F:
> > - case KeyEvent.KEYCODE_MEDIA_FAST_FORWARD:
> > case KeyEvent.KEYCODE_MEDIA_NEXT:
> > + case KeyEvent.KEYCODE_MEDIA_FAST_FORWARD:
> > seekDelta(10000);
> > return true;
> > case KeyEvent.KEYCODE_R:
> > + case KeyEvent.KEYCODE_MEDIA_PREVIOUS:
> > case KeyEvent.KEYCODE_MEDIA_REWIND:
> > - case KeyEvent.KEYCODE_MEDIA_PREVIOUS:
> > seekDelta(-10000);
> > return true;
> > case KeyEvent.KEYCODE_BUTTON_R1:
> > @@ -1511,7 +1518,7 @@ public class VideoPlayerActivity extends
> AppCompatActivity implements IVLCVout.C
> > });
> > } else {
> > /* Exit player when reaching the end */
> > - mEndReached = true;
> > + mEndReached = !mService.hasNext();
> > exitOK();
> > }
> > }
> > @@ -2795,6 +2802,8 @@ public class VideoPlayerActivity extends
> AppCompatActivity implements IVLCVout.C
> > onPlaying();
> > }
> >
> > + mHasNext = mService.hasNext();
> > +
> > // Get possible subtitles
> > String subtitleList_serialized =
> mSettings.getString(PreferencesActivity.VIDEO_SUBTITLE_FILES, null);
> > ArrayList<String> prefsList = new ArrayList<String>();
> > --
> > 2.5.0
> >
> > _______________________________________________
> > Android mailing list
> > Android at videolan.org
> > https://mailman.videolan.org/listinfo/android
> _______________________________________________
> Android mailing list
> Android at videolan.org
> https://mailman.videolan.org/listinfo/android
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/android/attachments/20151125/6c8c8feb/attachment-0001.html>
More information about the Android
mailing list