/*****************************************************************************
* VideoPlayerActivity.java
*****************************************************************************
* Copyright © 2011-2014 VLC authors and VideoLAN
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
package org.videolan.vlc.gui.video;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.StreamCorruptedException;
import java.io.UnsupportedEncodingException;
import java.lang.reflect.Method;
import java.net.URLDecoder;
import java.util.ArrayList;
import java.util.Date;
import java.util.Locale;
import java.util.Map;
import org.videolan.libvlc.EventHandler;
import org.videolan.libvlc.IVideoPlayer;
import org.videolan.libvlc.LibVLC;
import org.videolan.libvlc.LibVlcException;
import org.videolan.libvlc.LibVlcUtil;
import org.videolan.libvlc.Media;
import org.videolan.vlc.MediaDatabase;
import org.videolan.vlc.R;
import org.videolan.vlc.VLCApplication;
import org.videolan.vlc.audio.AudioServiceController;
import org.videolan.vlc.gui.CommonDialogs;
import org.videolan.vlc.gui.CommonDialogs.MenuType;
import org.videolan.vlc.gui.MainActivity;
import org.videolan.vlc.gui.PreferencesActivity;
import org.videolan.vlc.util.AndroidDevices;
import org.videolan.vlc.util.Strings;
import org.videolan.vlc.util.VLCInstance;
import org.videolan.vlc.util.WeakHandler;
import android.annotation.TargetApi;
import android.app.ActionBar;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.KeyguardManager;
import android.app.Presentation;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.content.pm.ActivityInfo;
import android.content.res.Configuration;
import android.database.Cursor;
import android.graphics.Color;
import android.graphics.ImageFormat;
import android.graphics.PixelFormat;
import android.media.AudioManager;
import android.media.AudioManager.OnAudioFocusChangeListener;
import android.media.MediaRouter;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.os.Message;
import android.preference.PreferenceManager;
import android.provider.MediaStore;
import android.provider.Settings;
import android.provider.Settings.SettingNotFoundException;
import android.text.format.DateFormat;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.Display;
import android.view.InputDevice;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.Surface;
import android.view.SurfaceHolder;
import android.view.SurfaceHolder.Callback;
import android.view.SurfaceView;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnSystemUiVisibilityChangeListener;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.view.WindowManager;
import android.view.animation.Animation;
import android.view.animation.AnimationSet;
import android.view.animation.AnimationUtils;
import android.view.animation.DecelerateInterpolator;
import android.view.animation.RotateAnimation;
import android.widget.FrameLayout;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.TextView;
public class VideoPlayerActivity extends Activity implements IVideoPlayer {
public final static String TAG = "VLC/VideoPlayerActivity";
// Internal intent identifier to distinguish between internal launch and
// external intent.
private final static String PLAY_FROM_VIDEOGRID = "org.videolan.vlc.gui.video.PLAY_FROM_VIDEOGRID";
private SurfaceView mSurface;
private SurfaceView mSubtitlesSurface;
private SurfaceHolder mSurfaceHolder;
private SurfaceHolder mSubtitlesSurfaceHolder;
private FrameLayout mSurfaceFrame;
private MediaRouter mMediaRouter;
private MediaRouter.SimpleCallback mMediaRouterCallback;
private SecondaryDisplay mPresentation;
private LibVLC mLibVLC;
private String mLocation;
private static final int SURFACE_BEST_FIT = 0;
private static final int SURFACE_FIT_HORIZONTAL = 1;
private static final int SURFACE_FIT_VERTICAL = 2;
private static final int SURFACE_FILL = 3;
private static final int SURFACE_16_9 = 4;
private static final int SURFACE_4_3 = 5;
private static final int SURFACE_ORIGINAL = 6;
private int mCurrentSize = SURFACE_BEST_FIT;
private SharedPreferences mSettings;
/** Overlay */
private ActionBar mActionBar;
private boolean mOverlayUseStatusBar;
private View mOverlayHeader;
private View mOverlayOption;
private View mOverlayProgress;
private View mOverlayBackground;
private static final int OVERLAY_TIMEOUT = 4000;
private static final int OVERLAY_INFINITE = 3600000;
private static final int FADE_OUT = 1;
private static final int SHOW_PROGRESS = 2;
private static final int SURFACE_SIZE = 3;
private static final int AUDIO_SERVICE_CONNECTION_SUCCESS = 5;
private static final int AUDIO_SERVICE_CONNECTION_FAILED = 6;
private static final int FADE_OUT_INFO = 4;
private boolean mDragging;
private boolean mShowing;
private int mUiVisibility = -1;
private SeekBar mSeekbar;
private TextView mTitle;
private TextView mSysTime;
private TextView mBattery;
private TextView mTime;
private TextView mLength;
private TextView mInfo;
private ImageView mLoading;
private TextView mLoadingText;
private ImageButton mPlayPause;
private ImageButton mBackward;
private ImageButton mForward;
private boolean mEnableJumpButtons;
private boolean mEnableBrightnessGesture;
private boolean mEnableCloneMode;
private boolean mDisplayRemainingTime = false;
private int mScreenOrientation;
private ImageButton mAudioTrack;
private ImageButton mSubtitle;
private ImageButton mLock;
private ImageButton mSize;
private ImageButton mMenu;
private boolean mIsLocked = false;
private int mLastAudioTrack = -1;
private int mLastSpuTrack = -2;
/**
* For uninterrupted switching between audio and video mode
*/
private boolean mSwitchingView;
private boolean mEndReached;
private boolean mCanSeek;
// Playlist
private int savedIndexPosition = -1;
// size of the video
private int mVideoHeight;
private int mVideoWidth;
private int mVideoVisibleHeight;
private int mVideoVisibleWidth;
private int mSarNum;
private int mSarDen;
//Volume
private AudioManager mAudioManager;
private int mAudioMax;
private OnAudioFocusChangeListener mAudioFocusListener;
private boolean mMute = false;
priva
没有合适的资源?快使用搜索试试~ 我知道了~
vlc-android-1.0.0
需积分: 9 12 下载量 132 浏览量
2015-01-30
14:20:02
上传
评论
收藏 4.82MB GZ 举报
温馨提示
共2000个文件
h:1663个
png:773个
xml:346个
vlc-android-1.0.0 vlc for android 源代码
资源推荐
资源详情
资源评论
收起资源包目录
vlc-android-1.0.0 (2000个子文件)
libvlcjni.c 23KB
libvlcjni-track.c 18KB
libvlcjni-util.c 11KB
thumbnailer.c 10KB
pthread-rwlocks.c 10KB
aout.c 8KB
vout.c 7KB
libvlcjni-medialist.c 5KB
libvlcjni-equalizer.c 4KB
pthread-once.c 3KB
native_crash_handler.c 3KB
wcstok.c 3KB
wcslcat.c 3KB
wcslcpy.c 2KB
wcsncpy.c 2KB
wcswidth.c 2KB
wcsstr.c 2KB
wcscmp.c 2KB
pthread-condattr.c 2KB
wcsncmp.c 2KB
wcsxfrm.c 2KB
wcpcpy.c 2KB
wcspbrk.c 2KB
sem.c 2KB
wcsncat.c 2KB
wcsspn.c 2KB
wcscspn.c 2KB
wmemcmp.c 2KB
wmemchr.c 2KB
wcscat.c 2KB
wmemcpy.c 2KB
wmemset.c 2KB
wcscpy.c 2KB
wmemmove.c 2KB
wcslen.c 2KB
wcsncasecmp.c 2KB
wcscoll.c 2KB
wcpncpy.c 2KB
wcscasecmp.c 2KB
wcsdup.c 2KB
wcsrchr.c 2KB
wcsnlen.c 2KB
wcschr.c 2KB
eventfd.c 1KB
pipe2.c 1KB
camera3.h 94KB
camera3.h 90KB
OMX_Audio.h 77KB
OMX_Audio.h 77KB
OMX_Audio.h 76KB
OMX_Audio.h 76KB
OMX_Audio.h 76KB
ResourceTypes.h 75KB
ResourceTypes.h 75KB
ResourceTypes.h 71KB
OMX_Core.h 69KB
OMX_Core.h 69KB
OMX_Core.h 69KB
OMX_Core.h 69KB
OMX_Core.h 69KB
audio_effect.h 52KB
audio_effect.h 50KB
sensors.h 49KB
audio_effect.h 45KB
OMX_Video.h 44KB
OMX_Video.h 44KB
OMX_Video.h 44KB
OMX_Video.h 44KB
OMX_Video.h 44KB
sensors.h 44KB
InputDispatcher.h 42KB
EffectApi.h 39KB
EffectApi.h 39KB
AudioTrack.h 37KB
input.h 34KB
camera2.h 33KB
camera2.h 33KB
CameraParameters.h 33KB
input.h 33KB
OMX_IVCommon.h 32KB
OMX_IVCommon.h 32KB
OMX_IVCommon.h 32KB
OMX_IVCommon.h 32KB
OMX_IVCommon.h 32KB
window.h 32KB
window.h 32KB
gps.h 31KB
gps.h 31KB
InputReader.h 31KB
AudioTrack.h 29KB
BufferQueue.h 28KB
Input.h 27KB
fused_location.h 26KB
BufferQueue.h 26KB
audio.h 25KB
hwcomposer.h 25KB
hwcomposer.h 24KB
Input.h 24KB
OMX_Component.h 24KB
OMX_Component.h 24KB
共 2000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 20
资源评论
ysjxw
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功