/*****************************************************************************
* 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 android.annotation.TargetApi;
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.pm.PackageManager;
import android.content.res.Configuration;
import android.database.Cursor;
import android.graphics.Color;
import android.graphics.PixelFormat;
import android.media.AudioManager;
import android.media.MediaRouter;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.os.ParcelFileDescriptor;
import android.preference.PreferenceManager;
import android.provider.MediaStore;
import android.provider.OpenableColumns;
import android.provider.Settings;
import android.provider.Settings.SettingNotFoundException;
import android.support.v4.app.FragmentManager;
import android.support.v4.view.GestureDetectorCompat;
import android.support.v4.view.MenuItemCompat;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.PopupMenu;
import android.text.TextUtils;
import android.text.format.DateFormat;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.Display;
import android.view.GestureDetector;
import android.view.InputDevice;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.Surface;
import android.view.SurfaceView;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnLayoutChangeListener;
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.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.TextView;
import android.widget.Toast;
import org.videolan.libvlc.IVLCVout;
import org.videolan.libvlc.LibVLC;
import org.videolan.libvlc.Media;
import org.videolan.libvlc.MediaPlayer;
import org.videolan.libvlc.util.AndroidUtil;
import org.videolan.libvlc.util.HWDecoderUtil;
import org.videolan.vlc.BuildConfig;
import org.videolan.vlc.PlaybackService;
import org.videolan.vlc.R;
import org.videolan.vlc.VLCApplication;
import org.videolan.vlc.gui.MainActivity;
import org.videolan.vlc.gui.PlaybackServiceActivity;
import org.videolan.vlc.gui.browser.FilePickerActivity;
import org.videolan.vlc.gui.dialogs.AdvOptionsDialog;
import org.videolan.vlc.gui.helpers.OnRepeatListener;
import org.videolan.vlc.gui.preferences.PreferencesActivity;
import org.videolan.vlc.interfaces.IDelayController;
import org.videolan.vlc.media.MediaDatabase;
import org.videolan.vlc.media.MediaWrapper;
import org.videolan.vlc.util.AndroidDevices;
import org.videolan.vlc.util.FileUtils;
import org.videolan.vlc.util.Permissions;
import org.videolan.vlc.util.Strings;
import org.videolan.vlc.util.Util;
import org.videolan.vlc.util.VLCInstance;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.FileNotFoundException;
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.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Date;
public class VideoPlayerActivity extends AppCompatActivity implements IVLCVout.Callback,
GestureDetector.OnDoubleTapListener, IDelayController, LibVLC.HardwareAccelerationError,
PlaybackService.Client.Callback, PlaybackService.Callback {
public final static String TAG = "VLC/VideoPlayerActivity";
// Internal intent identifier to distinguish between internal launch and
// external intent.
public final static String PLAY_FROM_VIDEOGRID = Strings.buildPkgString("gui.video.PLAY_FROM_VIDEOGRID");
public final static String PLAY_EXTRA_ITEM_LOCATION = "item_location";
public final static String PLAY_EXTRA_SUBTITLES_LOCATION = "subtitles_location";
public final static String PLAY_EXTRA_ITEM_TITLE = "title";
public final static String PLAY_EXTRA_FROM_START = "from_start";
public final static String PLAY_EXTRA_OPENED_POSITION = "opened_position";
public final static String PLAY_DISABLE_HARDWARE = "disable_hardware";
public final static String ACTION_RESULT = Strings.buildPkgString("player.result");
public final static String EXTRA_POSITION = "extra_position";
public final static String EXTRA_DURATION = "extra_duration";
public final static int RESULT_CONNECTION_FAILED = RESULT_FIRST_USER + 1;
public final static int RESULT_PLAYBACK_ERROR = RESULT_FIRST_USER + 2;
public final static int RESULT_HARDWARE_ACCELERATION_ERROR = RESULT_FIRST_USER + 3;
public final static int RESULT_VIDEO_TRACK_LOST = RESULT_FIRST_USER + 4;
private final PlaybackServiceActivity.Helper mHelper = new PlaybackServiceActivity.Helper(this, this);
private PlaybackService mService;
private View mRootView;
private SurfaceView mSurfaceView = null;
private SurfaceView mSubtitlesSurfaceView = null;
private FrameLayout mSurfaceFrame;
private MediaRouter mMediaRouter;
private MediaRouter.SimpleCallback mMediaRouterCallback;
private SecondaryDisplay mPresentation;
private int mPresentationDisplayId = -1;
private Uri mUri;
private boolean mAskResume = true;
private GestureDetectorCompat mDetector = null;
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 ViewGroup mActionBarView;
private View mOverlayProgress;
private View mOverlayBackground;
private View mOverlayButtons;
priva
没有合适的资源?快使用搜索试试~ 我知道了~
VLC-Android-1.7.5
需积分: 9 11 下载量 131 浏览量
2016-04-16
11:39:55
上传
评论 1
收藏 5.9MB GZ 举报
温馨提示
共3793个文件
h:1980个
png:907个
xml:467个
官方下载地址:http://get.videolan.org/vlc-android/1.7.5/VLC-Android-1.7.5.tar.gz 下载不到的朋友,可以这里下载
资源推荐
资源详情
资源评论
收起资源包目录
VLC-Android-1.7.5 (3793个子文件)
IDebugLogService.aidl 1KB
IDebugLogServiceCallback.aidl 1KB
libvlcjni-mediaplayer.c 30KB
libvlcjni-media.c 14KB
libvlcjni.c 14KB
thumbnailer.c 11KB
pthread-rwlocks.c 10KB
libvlcjni-vlcobject.c 7KB
std_logger.c 5KB
libvlcjni-medialist.c 5KB
pthread-once.c 3KB
libvlcjni-mediadiscoverer.c 3KB
wcstok.c 3KB
native_crash_handler.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
localtime.c 59B
proguard.cfg 2KB
COPYING 15KB
.gitignore 503B
.gitignore 55B
.gitignore 33B
.gitignore 31B
build.gradle 8KB
build.gradle 3KB
build.gradle 541B
settings.gradle 40B
camera3.h 122KB
camera3.h 94KB
camera3.h 90KB
OMX_Audio.h 77KB
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
OMX_Core.h 69KB
gps.h 62KB
audio.h 57KB
audio_effect.h 52KB
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
OMX_Video.h 44KB
sensors.h 44KB
InputDispatcher.h 42KB
AudioTrack.h 41KB
EffectApi.h 39KB
EffectApi.h 39KB
AudioTrack.h 37KB
sensors.h 37KB
window.h 35KB
input.h 34KB
hwcomposer.h 34KB
camera2.h 33KB
共 3793 条
- 1
- 2
- 3
- 4
- 5
- 6
- 38
资源评论
caiwenfeng_for_23
- 粉丝: 539
- 资源: 74
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功