├── .gitignore ├── README.md ├── VRDemo ├── .gitignore ├── .idea │ ├── .name │ ├── compiler.xml │ ├── copyright │ │ └── profiles_settings.xml │ ├── encodings.xml │ ├── gradle.xml │ ├── misc.xml │ ├── modules.xml │ └── runConfigurations.xml ├── app │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── ksyun │ │ │ └── vrplayer │ │ │ └── demo │ │ │ └── ApplicationTest.java │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── ksyun │ │ │ │ └── vrplayer │ │ │ │ └── demo │ │ │ │ ├── activity │ │ │ │ ├── CaptureActivity.java │ │ │ │ ├── HistoryActivity.java │ │ │ │ ├── JieVideoListViewAdapter.java │ │ │ │ ├── LocalFragment.java │ │ │ │ ├── MainActivity.java │ │ │ │ ├── NetMediaActivty.java │ │ │ │ ├── SettingActivity.java │ │ │ │ ├── SpinnerHelper.java │ │ │ │ ├── TestVideoActivity.java │ │ │ │ └── VideoPlayerActivity.java │ │ │ │ ├── model │ │ │ │ ├── GetList.java │ │ │ │ ├── MyVideoThumbLoader.java │ │ │ │ ├── NetDbAdapter.java │ │ │ │ ├── NetbaseHelper.java │ │ │ │ └── Strings.java │ │ │ │ ├── util │ │ │ │ ├── Cpu.java │ │ │ │ ├── LoadedImage.java │ │ │ │ ├── QosObject.java │ │ │ │ ├── QosThread.java │ │ │ │ ├── Settings.java │ │ │ │ └── Video.java │ │ │ │ └── zxing │ │ │ │ ├── camera │ │ │ │ ├── AutoFocusCallback.java │ │ │ │ ├── CameraConfigurationManager.java │ │ │ │ ├── CameraManager.java │ │ │ │ ├── FlashlightManager.java │ │ │ │ ├── PlanarYUVLuminanceSource.java │ │ │ │ └── PreviewCallback.java │ │ │ │ ├── decoding │ │ │ │ ├── CaptureActivityHandler.java │ │ │ │ ├── DecodeFormatManager.java │ │ │ │ ├── DecodeHandler.java │ │ │ │ ├── DecodeThread.java │ │ │ │ ├── FinishListener.java │ │ │ │ ├── InactivityTimer.java │ │ │ │ └── Intents.java │ │ │ │ └── view │ │ │ │ ├── ViewfinderResultPointCallback.java │ │ │ │ └── ViewfinderView.java │ │ ├── libs │ │ │ ├── arm64-v8a │ │ │ ├── armeabi-v7a │ │ │ ├── libksyplayer.jar │ │ │ ├── libksystat.jar │ │ │ ├── vrlib.jar │ │ │ ├── x86 │ │ │ └── zxing.jar │ │ └── res │ │ │ ├── drawable │ │ │ ├── qyvideo_pause_btn.png │ │ │ ├── qyvideo_start_btn.png │ │ │ └── video_image.png │ │ │ ├── layout │ │ │ ├── activity_history.xml │ │ │ ├── activity_md_using_surface_view.xml │ │ │ ├── activity_md_using_texture_view.xml │ │ │ ├── activity_net.xml │ │ │ ├── activity_player.xml │ │ │ ├── activity_setting.xml │ │ │ ├── camera.xml │ │ │ ├── fragment_local.xml │ │ │ ├── list_history.xml │ │ │ ├── list_local.xml │ │ │ ├── media_actionbar.xml │ │ │ ├── net_actionbar.xml │ │ │ ├── popup_layout.xml │ │ │ ├── qianyi_player.xml │ │ │ └── simple_spinner_item.xml │ │ │ ├── mipmap-hdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-mdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xhdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxhdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxxhdpi │ │ │ └── ic_launcher.png │ │ │ ├── raw │ │ │ ├── beep.ogg │ │ │ └── realm_properties │ │ │ ├── values-w820dp │ │ │ └── dimens.xml │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── dimens.xml │ │ │ ├── ids.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ └── test │ │ └── java │ │ └── com │ │ └── ksyun │ │ └── vrplayer │ │ └── demo │ │ └── ExampleUnitTest.java ├── build.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle └── libs ├── arm64-v8a └── libksyplayer.so ├── armeabi-v7a └── libksyplayer.so ├── libksyplayer.jar ├── libksystat.jar ├── vrlib.jar └── x86 └── libksyplayer.so /.gitignore: -------------------------------------------------------------------------------- 1 | # Built application files 2 | *.apk 3 | *.ap_ 4 | 5 | # Files for the ART/Dalvik VM 6 | *.dex 7 | 8 | # Java class files 9 | *.class 10 | 11 | # Generated files 12 | bin/ 13 | gen/ 14 | out/ 15 | 16 | # Gradle files 17 | .gradle/ 18 | build/ 19 | 20 | # Local configuration file (sdk path, etc) 21 | local.properties 22 | 23 | # Proguard folder generated by Eclipse 24 | proguard/ 25 | 26 | # Log Files 27 | *.log 28 | 29 | # Android Studio Navigation editor temp files 30 | .navigation/ 31 | 32 | # Android Studio captures folder 33 | captures/ 34 | 35 | # Intellij 36 | *.iml 37 | .idea/workspace.xml 38 | 39 | # Keystore files 40 | *.jks 41 | 42 | # Mac File 43 | .DS_Store 44 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # KVrPlayer_Android 2 | 3 | ## 1.产品概述 4 | 金山云Android VR播放SDK是基于[金山云Android播放SDK](https://github.com/ksvc/KSYMediaPlayer_Android)开发所得并支持全景播放功能的播放SDK,其接口和功能保持一致。 5 | 6 | ## 2.KVrPlayer_Android 功能说明 7 | 8 | * 支持[金山云Android播放SDK](https://github.com/ksvc/KSYMediaPlayer_Android)所有特性 9 | * 支持播放全景视频时单双目切换 10 | * 支持触摸和运动感应的交互方式的切换 11 | 12 | # 3.下载并使用SDK 13 | KVrPlayer_Android下载方式: 14 | 15 | * 从github下载:[https://github.com/ksvc/KVrPlayer_Android](https://github.com/ksvc/KVrPlayer_Android) 16 | 17 | 解压缩后包含 demo、README.md 四个部分, 解压后的目录结构如下所示: 18 | * demo/ 目录存放KSYPlayerDemo,用于帮助开发都快速了解如何使用SDK 19 | * libs/ 目录存放了包括jar包和so库,现提供了对armv7a/arm64/x86体系结构的支持 20 | * README.md 即本文档 21 | 22 | ## 4.快速集成 23 | [快速集成](https://github.com/ksvc/KVrPlayer_Android/wiki/KSYVrPlayerBasicExample)提供了SDK的基本使用示例,具体可见demo的具体代码 24 | 25 | ## 5.详细介绍 26 | 关于金山云Android播放SDK更多的[信息](https://github.com/ksvc/KSYMediaPlayer_Android/wiki) 27 | 28 | ## 6.反馈与建议 29 | - 主页:[金山云](http://v.ksyun.com) 30 | - 邮箱: 31 | - QQ讨论群:574179720 32 | - Issues: 33 | -------------------------------------------------------------------------------- /VRDemo/.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/workspace.xml 5 | /.idea/libraries 6 | .DS_Store 7 | /build 8 | /captures 9 | -------------------------------------------------------------------------------- /VRDemo/.idea/.name: -------------------------------------------------------------------------------- 1 | VRDemo -------------------------------------------------------------------------------- /VRDemo/.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /VRDemo/.idea/copyright/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /VRDemo/.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /VRDemo/.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 22 | 23 | -------------------------------------------------------------------------------- /VRDemo/.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 19 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 46 | -------------------------------------------------------------------------------- /VRDemo/.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /VRDemo/.idea/runConfigurations.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | -------------------------------------------------------------------------------- /VRDemo/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /VRDemo/app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 24 5 | buildToolsVersion "24.0.0" 6 | 7 | defaultConfig { 8 | applicationId "com.ksyun.player.demo" 9 | minSdkVersion 16 10 | targetSdkVersion 22 11 | versionCode 1 12 | versionName "1.0" 13 | } 14 | 15 | buildTypes { 16 | 17 | debug { 18 | versionNameSuffix ".dev" 19 | } 20 | release { 21 | debuggable false 22 | minifyEnabled true 23 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 24 | } 25 | } 26 | sourceSets.main { 27 | jniLibs.srcDirs 'src/main/libs' 28 | jni.srcDirs = [] // This prevents the auto generation of Android.mk 29 | } 30 | } 31 | 32 | dependencies { 33 | compile fileTree(include: ['*.jar'], dir: 'libs') 34 | compile fileTree(include: '*/so', dir: 'libs/armeabi-v7a') 35 | compile fileTree(include: '*/so', dir: 'libs/arm64-v8a') 36 | compile fileTree(include: '*/so', dir: 'libs/x86') 37 | compile files('src/main/libs/zxing.jar') 38 | testCompile 'junit:junit:4.12' 39 | compile 'com.android.support:appcompat-v7:24.0.0' 40 | compile files('src/main/libs/vrlib.jar') 41 | compile files('src/main/libs/libksyplayer.jar') 42 | compile files('src/main/libs/libksystat.jar') 43 | } 44 | -------------------------------------------------------------------------------- /VRDemo/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /Users/xbc/Library/Android/sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /VRDemo/app/src/androidTest/java/com/ksyun/vrplayer/demo/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package com.ksyun.vrplayer.demo; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /VRDemo/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 42 | 43 | 49 | 50 | 51 | 52 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /VRDemo/app/src/main/java/com/ksyun/vrplayer/demo/activity/CaptureActivity.java: -------------------------------------------------------------------------------- 1 | package com.ksyun.vrplayer.demo.activity; 2 | 3 | import android.app.Activity; 4 | import android.content.Intent; 5 | import android.content.res.AssetFileDescriptor; 6 | import android.graphics.Bitmap; 7 | import android.media.AudioManager; 8 | import android.media.MediaPlayer; 9 | import android.media.MediaPlayer.OnCompletionListener; 10 | import android.os.Bundle; 11 | import android.os.Handler; 12 | import android.os.Vibrator; 13 | import android.view.SurfaceHolder; 14 | import android.view.SurfaceHolder.Callback; 15 | import android.view.SurfaceView; 16 | import android.view.View; 17 | import android.view.View.OnClickListener; 18 | import android.widget.Button; 19 | import android.widget.Toast; 20 | 21 | import com.google.zxing.BarcodeFormat; 22 | import com.google.zxing.Result; 23 | import com.ksyun.vrplayer.demo.R; 24 | import com.ksyun.vrplayer.demo.zxing.camera.CameraManager; 25 | import com.ksyun.vrplayer.demo.zxing.decoding.CaptureActivityHandler; 26 | import com.ksyun.vrplayer.demo.zxing.decoding.InactivityTimer; 27 | import com.ksyun.vrplayer.demo.zxing.view.ViewfinderView; 28 | 29 | import java.io.IOException; 30 | import java.util.Vector; 31 | 32 | 33 | 34 | /** 35 | * Initial the camera 36 | * @author Ryan.Tang 37 | */ 38 | public class CaptureActivity extends Activity implements Callback { 39 | 40 | private CaptureActivityHandler handler; 41 | private ViewfinderView viewfinderView; 42 | private boolean hasSurface; 43 | private Vector decodeFormats; 44 | private String characterSet; 45 | private InactivityTimer inactivityTimer; 46 | private MediaPlayer mediaPlayer; 47 | private boolean playBeep; 48 | private static final float BEEP_VOLUME = 0.10f; 49 | private boolean vibrate; 50 | private Button cancelScanButton; 51 | 52 | /** Called when the activity is first created. */ 53 | @Override 54 | public void onCreate(Bundle savedInstanceState) { 55 | super.onCreate(savedInstanceState); 56 | setContentView(R.layout.camera); 57 | //ViewUtil.addTopView(getApplicationContext(), this, R.string.scan_card); 58 | CameraManager.init(getApplication()); 59 | viewfinderView = (ViewfinderView) findViewById(R.id.viewfinder_view); 60 | cancelScanButton = (Button) this.findViewById(R.id.btn_cancel_scan); 61 | hasSurface = false; 62 | inactivityTimer = new InactivityTimer(this); 63 | } 64 | 65 | @Override 66 | protected void onResume() { 67 | super.onResume(); 68 | SurfaceView surfaceView = (SurfaceView) findViewById(R.id.preview_view); 69 | SurfaceHolder surfaceHolder = surfaceView.getHolder(); 70 | if (hasSurface) { 71 | initCamera(surfaceHolder); 72 | } else { 73 | surfaceHolder.addCallback(this); 74 | surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); 75 | } 76 | decodeFormats = null; 77 | characterSet = null; 78 | 79 | playBeep = true; 80 | AudioManager audioService = (AudioManager) getSystemService(AUDIO_SERVICE); 81 | if (audioService.getRingerMode() != AudioManager.RINGER_MODE_NORMAL) { 82 | playBeep = false; 83 | } 84 | initBeepSound(); 85 | vibrate = true; 86 | 87 | //quit the scan view 88 | cancelScanButton.setOnClickListener(new OnClickListener() { 89 | 90 | @Override 91 | public void onClick(View v) { 92 | CaptureActivity.this.finish(); 93 | } 94 | }); 95 | } 96 | 97 | @Override 98 | protected void onPause() { 99 | super.onPause(); 100 | if (handler != null) { 101 | handler.quitSynchronously(); 102 | handler = null; 103 | } 104 | CameraManager.get().closeDriver(); 105 | } 106 | 107 | @Override 108 | protected void onDestroy() { 109 | inactivityTimer.shutdown(); 110 | super.onDestroy(); 111 | } 112 | 113 | /** 114 | * Handler scan result 115 | * @param result 116 | * @param barcode 117 | */ 118 | public void handleDecode(Result result, Bitmap barcode) { 119 | inactivityTimer.onActivity(); 120 | playBeepSoundAndVibrate(); 121 | String resultString = result.getText(); 122 | //FIXME 123 | if (resultString.equals("")) { 124 | Toast.makeText(CaptureActivity.this, "Scan failed!", Toast.LENGTH_SHORT).show(); 125 | }else { 126 | // System.out.println("Result:"+resultString); 127 | Intent resultIntent = new Intent(); 128 | Bundle bundle = new Bundle(); 129 | bundle.putString("result", resultString); 130 | resultIntent.putExtras(bundle); 131 | this.setResult(RESULT_OK, resultIntent); 132 | } 133 | CaptureActivity.this.finish(); 134 | } 135 | 136 | private void initCamera(SurfaceHolder surfaceHolder) { 137 | try { 138 | CameraManager.get().openDriver(surfaceHolder); 139 | } catch (IOException ioe) { 140 | return; 141 | } catch (RuntimeException e) { 142 | return; 143 | } 144 | if (handler == null) { 145 | handler = new CaptureActivityHandler(this, decodeFormats, 146 | characterSet); 147 | } 148 | } 149 | 150 | @Override 151 | public void surfaceChanged(SurfaceHolder holder, int format, int width, 152 | int height) { 153 | 154 | } 155 | 156 | @Override 157 | public void surfaceCreated(SurfaceHolder holder) { 158 | if (!hasSurface) { 159 | hasSurface = true; 160 | initCamera(holder); 161 | } 162 | 163 | } 164 | 165 | @Override 166 | public void surfaceDestroyed(SurfaceHolder holder) { 167 | hasSurface = false; 168 | 169 | } 170 | 171 | public ViewfinderView getViewfinderView() { 172 | return viewfinderView; 173 | } 174 | 175 | public Handler getHandler() { 176 | return handler; 177 | } 178 | 179 | public void drawViewfinder() { 180 | viewfinderView.drawViewfinder(); 181 | 182 | } 183 | 184 | private void initBeepSound() { 185 | if (playBeep && mediaPlayer == null) { 186 | // The volume on STREAM_SYSTEM is not adjustable, and users found it 187 | // too loud, 188 | // so we now play on the music stream. 189 | setVolumeControlStream(AudioManager.STREAM_MUSIC); 190 | mediaPlayer = new MediaPlayer(); 191 | mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); 192 | mediaPlayer.setOnCompletionListener(beepListener); 193 | 194 | AssetFileDescriptor file = getResources().openRawResourceFd( 195 | R.raw.beep); 196 | try { 197 | mediaPlayer.setDataSource(file.getFileDescriptor(), 198 | file.getStartOffset(), file.getLength()); 199 | file.close(); 200 | mediaPlayer.setVolume(BEEP_VOLUME, BEEP_VOLUME); 201 | mediaPlayer.prepare(); 202 | } catch (IOException e) { 203 | mediaPlayer = null; 204 | } 205 | } 206 | } 207 | 208 | private static final long VIBRATE_DURATION = 200L; 209 | 210 | private void playBeepSoundAndVibrate() { 211 | if (playBeep && mediaPlayer != null) { 212 | mediaPlayer.start(); 213 | } 214 | if (vibrate) { 215 | Vibrator vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE); 216 | vibrator.vibrate(VIBRATE_DURATION); 217 | } 218 | } 219 | 220 | /** 221 | * When the beep has finished playing, rewind to queue up another one. 222 | */ 223 | private final OnCompletionListener beepListener = new OnCompletionListener() { 224 | public void onCompletion(MediaPlayer mediaPlayer) { 225 | mediaPlayer.seekTo(0); 226 | } 227 | }; 228 | 229 | } -------------------------------------------------------------------------------- /VRDemo/app/src/main/java/com/ksyun/vrplayer/demo/activity/HistoryActivity.java: -------------------------------------------------------------------------------- 1 | package com.ksyun.vrplayer.demo.activity; 2 | 3 | import android.app.Activity; 4 | import android.content.Context; 5 | import android.content.Intent; 6 | import android.content.SharedPreferences; 7 | import android.database.Cursor; 8 | import android.os.Bundle; 9 | import android.view.View; 10 | import android.widget.AdapterView; 11 | import android.widget.ListView; 12 | import android.widget.SimpleAdapter; 13 | 14 | import com.ksyun.vrplayer.demo.R; 15 | import com.ksyun.vrplayer.demo.model.NetDbAdapter; 16 | import com.ksyun.vrplayer.demo.util.Settings; 17 | 18 | import java.util.ArrayList; 19 | import java.util.HashMap; 20 | import java.util.Map; 21 | 22 | /** 23 | * Created by liubohua on 16/7/20. 24 | */ 25 | public class HistoryActivity extends Activity{ 26 | private ListView hislist; 27 | private ArrayList> listurl; 28 | private Cursor cursor; 29 | private NetDbAdapter NetDb; 30 | 31 | private SharedPreferences settings; 32 | private String choosevr; 33 | 34 | 35 | @Override 36 | protected void onCreate(Bundle savedInstanceState) { 37 | super.onCreate(savedInstanceState); 38 | setContentView(R.layout.activity_history); 39 | listurl = new ArrayList>(); 40 | settings = getSharedPreferences("SETTINGS", Context.MODE_PRIVATE); 41 | choosevr = settings.getString("choose_vr","信息为空"); 42 | 43 | hislist = (ListView) findViewById(R.id.list_history); 44 | NetDb = new NetDbAdapter(HistoryActivity.this); 45 | NetDb.open(); 46 | cursor = NetDb.getAllData(); 47 | cursor.moveToFirst(); 48 | if(cursor.getCount()>0){ 49 | Map map = new HashMap(); 50 | map.put("url", cursor.getString(cursor.getColumnIndex(NetDbAdapter.KEY_PATH))); 51 | listurl.add(map); 52 | } 53 | while(cursor.moveToNext()){ 54 | Map map = new HashMap(); 55 | map.put("url", cursor.getString(cursor.getColumnIndex(NetDbAdapter.KEY_PATH))); 56 | listurl.add(map); 57 | } 58 | SimpleAdapter adapter = new SimpleAdapter(this,listurl,R.layout.list_history,new String[]{"url"},new int[]{R.id.list_history_txt}); 59 | 60 | hislist.setAdapter(adapter); 61 | hislist.setOnItemClickListener(new AdapterView.OnItemClickListener() { 62 | @Override 63 | public void onItemClick(AdapterView adapterView, View view, int i, long l) { 64 | String path = listurl.get(i).get("url"); 65 | if (choosevr.equals(Settings.VRON)){ 66 | Intent intent = new Intent(HistoryActivity.this,TestVideoActivity.class); 67 | intent.putExtra("path",path); 68 | startActivity(intent); 69 | }else{ 70 | Intent intent = new Intent(HistoryActivity.this,VideoPlayerActivity.class); 71 | intent.putExtra("path",path); 72 | startActivity(intent); 73 | } 74 | 75 | } 76 | }); 77 | 78 | } 79 | } 80 | -------------------------------------------------------------------------------- /VRDemo/app/src/main/java/com/ksyun/vrplayer/demo/activity/JieVideoListViewAdapter.java: -------------------------------------------------------------------------------- 1 | package com.ksyun.vrplayer.demo.activity; 2 | 3 | import android.content.Context; 4 | import android.view.LayoutInflater; 5 | import android.view.View; 6 | import android.view.ViewGroup; 7 | import android.widget.BaseAdapter; 8 | import android.widget.ImageView; 9 | import android.widget.TextView; 10 | 11 | import com.ksyun.vrplayer.demo.model.MyVideoThumbLoader; 12 | import com.ksyun.vrplayer.demo.R; 13 | import com.ksyun.vrplayer.demo.util.Video; 14 | 15 | import java.util.ArrayList; 16 | import java.util.List; 17 | 18 | /** 19 | * Created by liubohua on 16/7/12. 20 | */ 21 | public class JieVideoListViewAdapter extends BaseAdapter { 22 | 23 | private ArrayList