diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/.gitignore" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/.gitignore" new file mode 100644 index 0000000000000000000000000000000000000000..fdc0c4a65db238be4186f16e1e0911b1d61fbf31 --- /dev/null +++ "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/.gitignore" @@ -0,0 +1,16 @@ +*.iml +.gradle +/local.properties +/.idea/caches +/.idea/libraries +/.idea/modules.xml +/.idea/workspace.xml +/.idea/navEditor.xml +/.idea/assetWizardSettings.xml +.DS_Store +/build +/captures +.externalNativeBuild +/entry/.preview +.cxx +/node_modules diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/.idea/.gitignore" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/.idea/.gitignore" new file mode 100644 index 0000000000000000000000000000000000000000..26d33521af10bcc7fd8cea344038eaaeb78d0ef5 --- /dev/null +++ "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/.idea/.gitignore" @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/.idea/compiler.xml" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/.idea/compiler.xml" new file mode 100644 index 0000000000000000000000000000000000000000..fb7f4a8a465d42b4a0390d464b83b99e8465bba7 --- /dev/null +++ "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/.idea/compiler.xml" @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/.idea/gradle.xml" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/.idea/gradle.xml" new file mode 100644 index 0000000000000000000000000000000000000000..0cdf1ad1191c361dba778dba0513c891fdf84a2b --- /dev/null +++ "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/.idea/gradle.xml" @@ -0,0 +1,23 @@ + + + + + + + \ No newline at end of file diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/.idea/jarRepositories.xml" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/.idea/jarRepositories.xml" new file mode 100644 index 0000000000000000000000000000000000000000..19e238eaa31f512cfc1e8641964227098d1eb8bb --- /dev/null +++ "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/.idea/jarRepositories.xml" @@ -0,0 +1,25 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/.idea/misc.xml" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/.idea/misc.xml" new file mode 100644 index 0000000000000000000000000000000000000000..794aa67e635837ac492499857a20ce72f4938e28 --- /dev/null +++ "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/.idea/misc.xml" @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/.idea/previewer/phone/phoneSettingConfig_MateX2.json" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/.idea/previewer/phone/phoneSettingConfig_MateX2.json" new file mode 100644 index 0000000000000000000000000000000000000000..69beee7fd7694e767677c5d3b4863f419c2bf84e --- /dev/null +++ "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/.idea/previewer/phone/phoneSettingConfig_MateX2.json" @@ -0,0 +1,25 @@ +{ + "setting": { + "1.0.1": { + "Language": { + "args": { + "Language": "zh_CN" + } + } + } + }, + "frontend": { + "1.0.0": { + "Resolution": { + "args": { + "Resolution": "360*780" + } + }, + "DeviceType": { + "args": { + "DeviceType": "phone" + } + } + } + } +} \ No newline at end of file diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/.idea/previewer/phone/phoneSettingConfig_P40.json" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/.idea/previewer/phone/phoneSettingConfig_P40.json" new file mode 100644 index 0000000000000000000000000000000000000000..5d566ff1700a993e9aeb888017137cdb3b4964a1 --- /dev/null +++ "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/.idea/previewer/phone/phoneSettingConfig_P40.json" @@ -0,0 +1,25 @@ +{ + "setting": { + "1.0.1": { + "Language": { + "args": { + "Language": "zh-CN" + } + } + } + }, + "frontend": { + "1.0.0": { + "Resolution": { + "args": { + "Resolution": "360*780" + } + }, + "DeviceType": { + "args": { + "DeviceType": "phone" + } + } + } + } +} \ No newline at end of file diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/.idea/previewer/previewConfigV2.json" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/.idea/previewer/previewConfigV2.json" new file mode 100644 index 0000000000000000000000000000000000000000..105abd1cb757ac0d5b926d6bc6b35e455a2ae014 --- /dev/null +++ "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/.idea/previewer/previewConfigV2.json" @@ -0,0 +1,49 @@ +{ + "1.0.0": { + "LastPreviewDevice": {} + }, + "1.0.1": { + "profileList": [ + { + "id": "P40", + "deviceType": "phone", + "width": 1080, + "height": 2340, + "shape": "rect", + "dpi": 480, + "orientation": "portrait", + "language": "zh_CN", + "colorMode": "light" + }, + { + "id": "MateX2", + "deviceType": "phone", + "width": 2200, + "height": 2480, + "shape": "rect", + "dpi": 520, + "orientation": "portrait", + "language": "zh_CN", + "colorMode": "light" + }, + { + "id": "MatePadPro", + "deviceType": "tablet", + "width": 2560, + "height": 1600, + "shape": "rect", + "dpi": 400, + "orientation": "landscape", + "language": "zh_CN", + "colorMode": "light" + } + ], + "runningProfileList": [ + "P40" + ], + "availableProfileList": [ + "MatePadPro", + "MateX2" + ] + } +} \ No newline at end of file diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/.idea/previewer/tablet/tabletSettingConfig_MatePadPro.json" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/.idea/previewer/tablet/tabletSettingConfig_MatePadPro.json" new file mode 100644 index 0000000000000000000000000000000000000000..278b67116de4f13f8bc141e0f8cc165f55ca3782 --- /dev/null +++ "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/.idea/previewer/tablet/tabletSettingConfig_MatePadPro.json" @@ -0,0 +1,25 @@ +{ + "setting": { + "1.0.1": { + "Language": { + "args": { + "Language": "zh_CN" + } + } + } + }, + "frontend": { + "1.0.0": { + "Resolution": { + "args": { + "Resolution": "1024*640" + } + }, + "DeviceType": { + "args": { + "DeviceType": "tablet" + } + } + } + } +} \ No newline at end of file diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/.idea/vcs.xml" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/.idea/vcs.xml" new file mode 100644 index 0000000000000000000000000000000000000000..6c0b8635858dc7ad44b93df54b762707ce49eefc --- /dev/null +++ "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/.idea/vcs.xml" @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/build.gradle" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/build.gradle" new file mode 100644 index 0000000000000000000000000000000000000000..44caad4209a80785f48f348c8fdce05b4afac7ba --- /dev/null +++ "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/build.gradle" @@ -0,0 +1,33 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. +apply plugin: 'com.huawei.ohos.app' + +//For instructions on signature configuration, see https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ide_debug_device-0000001053822404#section1112183053510 +ohos { + compileSdkVersion 6 +} + +buildscript { + repositories { + maven { + url 'https://repo.huaweicloud.com/repository/maven/' + } + maven { + url 'https://developer.huawei.com/repo/' + } + } + dependencies { + classpath 'com.huawei.ohos:hap:3.0.3.2' + classpath 'com.huawei.ohos:decctest:1.2.6.0' + } +} + +allprojects { + repositories { + maven { + url 'https://repo.huaweicloud.com/repository/maven/' + } + maven { + url 'https://developer.huawei.com/repo/' + } + } +} diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/.gitignore" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/.gitignore" new file mode 100644 index 0000000000000000000000000000000000000000..7d5b7a94f4dcf381f03ff21f28f8a2494b58023f --- /dev/null +++ "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/.gitignore" @@ -0,0 +1,2 @@ +/build +/node_modules diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/build.gradle" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/build.gradle" new file mode 100644 index 0000000000000000000000000000000000000000..d493119fbb4586dac82d271dc9979d92c585f21b --- /dev/null +++ "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/build.gradle" @@ -0,0 +1,26 @@ +apply plugin: 'com.huawei.ohos.hap' +apply plugin: 'com.huawei.ohos.decctest' +//For instructions on signature configuration, see https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ide_debug_device-0000001053822404#section1112183053510 +ohos { + compileSdkVersion 6 + defaultConfig { + compatibleSdkVersion 6 + } + buildTypes { + release { + proguardOpt { + proguardEnabled false + rulesFiles 'proguard-rules.pro' + } + } + } +} + +dependencies { + implementation fileTree(dir: 'libs', include: ['*.jar', '*.har']) + testImplementation 'junit:junit:4.13.1' + ohosTestImplementation 'com.huawei.ohos.testkit:runner:1.0.0.200' +} +decc { + supportType = ['html','xml'] +} diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/package.json" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..0967ef424bce6791893e9a57bb952f80fd536e93 --- /dev/null +++ "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/package.json" @@ -0,0 +1 @@ +{} diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/proguard-rules.pro" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/proguard-rules.pro" new file mode 100644 index 0000000000000000000000000000000000000000..f7666e47561d514b2a76d5a7dfbb43ede86da92a --- /dev/null +++ "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/proguard-rules.pro" @@ -0,0 +1 @@ +# config module specific ProGuard rules here. \ No newline at end of file diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/config.json" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/config.json" new file mode 100644 index 0000000000000000000000000000000000000000..54afac4805d58dab299f99ec4a880984288c7a0f --- /dev/null +++ "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/config.json" @@ -0,0 +1,64 @@ +{ + "app": { + "bundleName": "com.panda_coder.player", + "vendor": "panda_coder", + "version": { + "code": 1000000, + "name": "1.0.0" + } + }, + "deviceConfig": {}, + "module": { + "package": "com.panda_coder.player", + "name": ".MyApplication", + "mainAbility": "com.panda_coder.player.MainAbility", + "deviceType": [ + "phone", + "tablet" + ], + "distro": { + "deliveryWithInstall": true, + "moduleName": "entry", + "moduleType": "entry", + "installationFree": false + }, + "abilities": [ + { + "skills": [ + { + "entities": [ + "entity.system.home" + ], + "actions": [ + "action.system.home" + ] + } + ], + "visible": true, + "name": "com.panda_coder.player.MainAbility", + "icon": "$media:icon", + "description": "$string:mainability_description", + "label": "$string:entry_MainAbility", + "type": "page", + "launchType": "standard" + } + ], + "reqPermissions": [ + { + "name": "ohos.permission.DISTRIBUTED_DATASYNC" + } + ], + "js": [ + { + "pages": [ + "pages/index/index" + ], + "name": "default", + "window": { + "designWidth": 720, + "autoDesignWidth": true + } + } + ] + } +} \ No newline at end of file diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/java/com/panda_coder/player/MainAbility.java" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/java/com/panda_coder/player/MainAbility.java" new file mode 100644 index 0000000000000000000000000000000000000000..94129ae572bf91f73072a134e03c2ba73ed214e0 --- /dev/null +++ "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/java/com/panda_coder/player/MainAbility.java" @@ -0,0 +1,35 @@ +package com.panda_coder.player; + +import ohos.ace.ability.AceAbility; +import ohos.aafwk.content.Intent; + +import java.util.ArrayList; +import java.util.List; + +public class MainAbility extends AceAbility { + @Override + public void onStart(Intent intent) { + super.onStart(intent); + requestPermission(); + } + + //获取权限 + private void requestPermission() { + String[] permission = { + "ohos.permission.DISTRIBUTED_DATASYNC", + }; + List applyPermissions = new ArrayList<>(); + for (String element : permission) { + if (verifySelfPermission(element) != 0) { + if (canRequestPermission(element)) { + applyPermissions.add(element); + } + } + } + requestPermissionsFromUser(applyPermissions.toArray(new String[0]), 0); + } + @Override + public void onStop() { + super.onStop(); + } +} diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/java/com/panda_coder/player/MyApplication.java" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/java/com/panda_coder/player/MyApplication.java" new file mode 100644 index 0000000000000000000000000000000000000000..54dc25185eca548f3343e6b5be3b5539cb921945 --- /dev/null +++ "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/java/com/panda_coder/player/MyApplication.java" @@ -0,0 +1,10 @@ +package com.panda_coder.player; + +import ohos.aafwk.ability.AbilityPackage; + +public class MyApplication extends AbilityPackage { + @Override + public void onInitialize() { + super.onInitialize(); + } +} diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/js/default/app.js" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/js/default/app.js" new file mode 100644 index 0000000000000000000000000000000000000000..aedcefe0054c6e16c40491f4d1abc20a4dc1c6ef --- /dev/null +++ "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/js/default/app.js" @@ -0,0 +1,8 @@ +export default { + onCreate() { + console.info('AceApplication onCreate'); + }, + onDestroy() { + console.info('AceApplication onDestroy'); + } +}; diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/js/default/common/data.js" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/js/default/common/data.js" new file mode 100644 index 0000000000000000000000000000000000000000..06e8f24f25b32fe22a0d0c0081330b45d6c0111e --- /dev/null +++ "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/js/default/common/data.js" @@ -0,0 +1,84 @@ +export default { + "videoSource": [ + { + id:1, + "name":"Mate30 全国十五城地标灯光秀", + "src":"/common/videos/m30_dengguangxiu.mp4", + "image":"/common/images/mate30_dengguang.png" + }, + { + id:2, + "name":"Mate40 全国十八城地表灯光秀", + "src":"/common/videos/m40_dengguangxiu.mp4", + "image":"/common/images/mate40_dengguang.png" + }, + { + id:3, + "name":"Mate40 发布会片尾《没有人能熄灭漫天星光》", + "src":"/common/videos/m40_fabuhuipianwei.mp4", + "image":"/common/images/mate40_pianwei.png" + } + ], + comments:[ + { + id:1, + videoId:1, + user:'180****1231', + content:"恭喜mate30 发布啦" + }, + { + id:2, + videoId:1, + user:'180****1233', + content:"mate30真好看" + }, + { + id:3, + videoId:2, + user:'180****1233', + content:"mate40真好看" + }, + { + id:4, + videoId:2, + user:'180****1233', + content:"灯光美美哒" + }, + { + id:5, + videoId:3, + user:'180****1233', + content:"没有人可以熄灭漫天星光" + }, + { + id:6, + videoId:3, + user:'180****1234', + content:"没有人可以熄灭漫天星光" + }, + { + id:7, + videoId:3, + user:'181****1233', + content:"没有人可以熄灭漫天星光" + }, + { + id:8, + videoId:3, + user:'180****1243', + content:"没有人可以熄灭漫天星光" + }, + { + id:9, + videoId:3, + user:'180****1213', + content:"没有人可以熄灭漫天星光" + }, + { + id:10, + videoId:3, + user:'181****1223', + content:"没有人可以熄灭漫天星光" + }, + ] +} \ No newline at end of file diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/js/default/common/images/Wallpaper.png" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/js/default/common/images/Wallpaper.png" new file mode 100644 index 0000000000000000000000000000000000000000..60d4841a80eb20c63de74306cb7f8350d6a85c48 Binary files /dev/null and "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/js/default/common/images/Wallpaper.png" differ diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/js/default/common/images/bg-tv.jpg" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/js/default/common/images/bg-tv.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..86fc07358eea5c1474bc833fca07c6d4d8698a89 Binary files /dev/null and "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/js/default/common/images/bg-tv.jpg" differ diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/js/default/common/images/ic_hop.svg" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/js/default/common/images/ic_hop.svg" new file mode 100644 index 0000000000000000000000000000000000000000..a3c9baade44146810d8b91691934ab4b7bf98adf --- /dev/null +++ "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/js/default/common/images/ic_hop.svg" @@ -0,0 +1,8 @@ + + + icon_hop + + + + + \ No newline at end of file diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/js/default/common/images/mate30_dengguang.png" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/js/default/common/images/mate30_dengguang.png" new file mode 100644 index 0000000000000000000000000000000000000000..1d4ff184588dbb0b43cfd10a838b1765de6b394a Binary files /dev/null and "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/js/default/common/images/mate30_dengguang.png" differ diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/js/default/common/images/mate40_dengguang.png" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/js/default/common/images/mate40_dengguang.png" new file mode 100644 index 0000000000000000000000000000000000000000..044d1a0027c63e492c1e014b7f5c90aa6c469352 Binary files /dev/null and "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/js/default/common/images/mate40_dengguang.png" differ diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/js/default/common/images/mate40_pianwei.png" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/js/default/common/images/mate40_pianwei.png" new file mode 100644 index 0000000000000000000000000000000000000000..33d0b603ae42fb083b28e36c3ed9fb24ba896f20 Binary files /dev/null and "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/js/default/common/images/mate40_pianwei.png" differ diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/js/default/common/videos/m30_dengguangxiu.mp4" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/js/default/common/videos/m30_dengguangxiu.mp4" new file mode 100644 index 0000000000000000000000000000000000000000..708d02cf681a1927bd989a72ebfea126ab9aad8f Binary files /dev/null and "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/js/default/common/videos/m30_dengguangxiu.mp4" differ diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/js/default/common/videos/m40_dengguangxiu.mp4" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/js/default/common/videos/m40_dengguangxiu.mp4" new file mode 100644 index 0000000000000000000000000000000000000000..0eb52e0507ba23895e377cbd61a4d3ddf5d23e16 Binary files /dev/null and "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/js/default/common/videos/m40_dengguangxiu.mp4" differ diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/js/default/common/videos/m40_fabuhuipianwei.mp4" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/js/default/common/videos/m40_fabuhuipianwei.mp4" new file mode 100644 index 0000000000000000000000000000000000000000..9778978d1c4969ce83d76101f25785fcbd2f8221 Binary files /dev/null and "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/js/default/common/videos/m40_fabuhuipianwei.mp4" differ diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/js/default/i18n/en-US.json" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/js/default/i18n/en-US.json" new file mode 100644 index 0000000000000000000000000000000000000000..e63c70d978a3a53be988388c87182f81785e170c --- /dev/null +++ "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/js/default/i18n/en-US.json" @@ -0,0 +1,6 @@ +{ + "strings": { + "hello": "Hello", + "world": "World" + } +} \ No newline at end of file diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/js/default/i18n/zh-CN.json" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/js/default/i18n/zh-CN.json" new file mode 100644 index 0000000000000000000000000000000000000000..de6ee5748322f44942c1b003319d8e66c837675f --- /dev/null +++ "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/js/default/i18n/zh-CN.json" @@ -0,0 +1,6 @@ +{ + "strings": { + "hello": "您好", + "world": "世界" + } +} \ No newline at end of file diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/js/default/pages/index/index.css" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/js/default/pages/index/index.css" new file mode 100644 index 0000000000000000000000000000000000000000..78a08c043a405aaf7bf4dc59cae9d743c4c073fb --- /dev/null +++ "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/js/default/pages/index/index.css" @@ -0,0 +1,158 @@ +.container { + flex-direction: column; + justify-content: center; + align-items: center; + width: 100%; + height: 100%; +} + +.video{ + flex-shrink:4; +} +.video-lists{ + flex-shrink:5; +} +.comments{ + flex-shrink:3; +} + +.vide-tools{ + flex-direction: column; + justify-content: space-between; +} +.video-tools_child{ + padding:6px 10px; + background-color: black; + opacity: 0.8; + flex-direction: row; + height: 36px; +} +.video-tools_child>div{ + flex-direction: row; +} +.control_button { + width: 100%; + aspect-ratio: 1; +} +.video-tools_child .title{ + color: white; + font-size: 16px; + text-overflow:ellipsis; +} + +.tools-left{ + flex-grow: 3; +} +.tools-right{ + flex-grow:2; +} +.duration-text{ + width: 120px; + font-size: 12px; + color: white; + text-align: center; +} +.tools-btn{ + background-color: black; + padding:0px 3px; + width: 42px; + font-size: 18px; + font-weight: bolder; + text-align: center; +} +.tools-bottom{ + height: 32px; + padding: 3px 6px; +} +.v-slider{ + padding: 0; + margin: 0; + width: 100%; +} + +.btn-speed{ + font-size: 12px; + width: 80px; +} +#speedPopup{ + height: 90px; + padding: 3px; + border-radius: 3px; +} +#speedPopup>div{ + flex-direction: column; + justify-content: flex-end; +} +.speed-child{ + margin:3px; + font-size: 12px; + height: 30px; + line-height: 12px; + color: white; + border-bottom: 1px solid white; +} +/*------------视频列表----------------*/ +.video-lists,.comments{ + flex-direction: column; +} + +.video-lists list{ + flex-direction: row; +} +.video-lists list list-item{ + margin:3px 6px; +} +.card-title{ + font-size: 18px; + padding: 3px 6px; + height: 42px; + font-weight: bolder; +} +.preview-video{ + flex-direction: column; + width: 150px; + height: 120px; +} +.preview-video text{ + font-size: 12px; + text-overflow:ellipsis; + max-lines: 1; +} +.preview-video image{ + radius: 6px; +} + +/*-----------评论-------------------*/ +.comment-info{ + flex-direction: column; +} +.comment-user{ + border-radius: 6px; +} +.comment-user label{ + font-size: 16px; + padding: 3px; + opacity: 0.6; +} +.comment-content{ + margin-left: 32px; + padding: 3px; + opacity: 0.3; +} +.comment-content text{ + font-size: 14px; +} + +.btn{ + padding: 9px; + border-radius: 3px; + margin:0px 6px; +} +.comment-put input{ + border-radius: 9px; +} +.comment-put{ + margin:6px 3px; + height:52px; +} + diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/js/default/pages/index/index.hml" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/js/default/pages/index/index.hml" new file mode 100644 index 0000000000000000000000000000000000000000..1c9d387f04d868a6c0fb49c76df58bf13d5f934d --- /dev/null +++ "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/js/default/pages/index/index.hml" @@ -0,0 +1,87 @@ + +
+ +
+ +
+ + + +
+
+
+ + {{playedVideo.name}} +
+
+ + +
+
+ +
+
+ + + + {{thisTimeStr}} + + + + {{totalTimeStr}} +
+
+ + + +
+ 2.0X + 1.5X + 1.0X + 0.5X +
+
+ + +
+
+
+
+
+
+ +
+ 视频列表: + + +
+ + {{$item.name}} +
+
+
+
+ +
+ 评论区: + + + +
+ +
+ +
+ +
+ {{$item.content}} +
+
+
+
+
+ + +
+
+
diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/js/default/pages/index/index.js" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/js/default/pages/index/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..75bdbc2ec189d308515c115bd3627ea3b9d82917 --- /dev/null +++ "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/js/default/pages/index/index.js" @@ -0,0 +1,276 @@ +import data from "../../common/data.js" + +export default { + data: { + videoSource:[],//视频数据源 + isShowController:false,//是否显示控制栏(当流转时默认显示控制栏) + isAllScreen:false,//是否全屏 + showToolsTime:0, + isPlayed:false,//是否播放 + totalTime:999999999,//slider的bug先附一个较大值 + watchTimer:-1, + commentContent:"", + isChildToolTouched:false, + listTouchedMoved:[], + videoTouchMoveTouches:[], + isAutoPlay:false + }, + shareData:{ + playIndex:0,//当前播放序号 + thisTime:0, + playSpeed:1.0, + commentsSource:[],//评论数据源 + }, + computed:{ + playedVideo(){//当前播放视频 + return this.videoSource[this.playIndex] + }, + thisTimeStr(){ + let hour=0; + let min=0; + let secend=0; + secend=parseInt(this.thisTime%60) + min=parseInt((this.thisTime/60)%60) + hour=parseInt(this.thisTime/3600) + return `${this.prefixInteger(hour,2)}:${this.prefixInteger(min,2)}:${this.prefixInteger(secend,2)}` + }, + totalTimeStr(){ + let hour=0; + let min=0; + let secend=0; + secend=parseInt(this.totalTime%60) + min=parseInt((this.totalTime/60)%60) + hour=parseInt((this.totalTime/3600)) + return `${this.prefixInteger(hour,2)}:${this.prefixInteger(min,2)}:${this.prefixInteger(secend,2)}` + }, + thisComments(){ + let data=this.commentsSource.filter(t=>t.videoId==this.playedVideo.id) + return data.reverse() + }, + speedStr(){ + if(this.playSpeed==1.0) + return "倍数"; + return `${this.playSpeed}倍` + } + + }, + //根据位数自动往前补零 + prefixInteger(num, m) { + return (Array(m).join(0) + num).slice(-m); + }, + onInit() { + this.$watch("showToolsTime",'watchShowToolsTimeEvent') + this.videoSource=data.videoSource + this.commentsSource=data.comments + this.playIndex=0; + this.showToolsTime=5; + }, + childToolTouched(){ + this.isChildToolTouched=true + }, + mPrepared({duration}){ + this.totalTime=duration + if(this.thisTime>0){ + this.sliderChanged({value:this.thisTime}) + } + if(this.isAutoPlay){ + this.$element("m_video").start() + this.isAutoPlay=false + } + }, + //视频滑动事件 + videoTouchMoved(evt){ + if(!this.isChildToolTouched){ + this.videoTouchMoveTouches=this.videoTouchMoveTouches.concat(evt.touches) + } + }, + //视频列表touchmove事件,防止拖动时和touchend事件冲突 + listTouchMoved(){ + this.listTouchedMoved.push(1) + }, + //视频播放事件 + mStart(){ + this.isPlayed=true + }, + //视频播放速度调整 + speedChanged(speed){ + this.playSpeed=speed; + }, + //视频停止事件 + mStop(){ + this.isPlayed=false + }, + //重置播放器 + resetVideo(){ + this.thisTime=0 + this.isPlayed=false + }, + //视频播放进度变化事件 + timeChanged({currenttime}){ + this.thisTime=currenttime + }, + toolsTouched(){ + //当已显示时隐藏,当未显示时显示并默认5s自动关闭 + if(this.showToolsTime>0 && !this.childToolTouched){ + this.showToolsTime=0 + this.childToolTouched=false + }else{ + this.showToolsTime=5 + } + //复原 + this.childToolTouched=false + //判单手势 + let touchMoveOrientation= this.getTouchMoveOrientation(this.videoTouchMoveTouches,10); + this.videoTouchMoveTouches=[]; + switch(touchMoveOrientation){ + case "left2right":{ + this.nextVideo(); + break; + } + case "right2left":{ + this.prevVideo(); + break; + } + + } + }, + //播放上一个 + prevVideo(){ + let index=(this.playIndex<=0?this.videoSource.length-1:this.playIndex-1); + this.checkVideo(index); + }, + //播放下一个 + nextVideo(){ + let index=(this.playIndex>=this.videoSource.length-1?0:this.playIndex+1); + this.checkVideo(index); + }, + //判断手势 + getTouchMoveOrientation(source,num){ + let orientation=[] + for(let i=1;iMath.abs(Y) && X>0){ + orientation.push("left2right") + }else if(Math.abs(X)>Math.abs(Y) && X<0){ + orientation.push("right2left") + }else if(Math.abs(X)0){ + orientation.push("top2bottom") + }else if(Math.abs(X){ + if(orientation.indexOf(item)==index){ + obj[item]=1 + }else{ + obj[item]+=1 + } + }) + + for(let i in obj){ + if(obj[i]>maxNum){ + maxNum=obj[i] + } + } + if(maxNum5){ + this.listTouchedMoved=[]; + return; + } + if(this.playIndex!=index){ + try{ + this.$element("m_video").stop();//使用该方法api6才有效 + }catch{ + this.sliderChanged({value:0,progress:0}) + } + } + this.isAutoPlay=true + this.playIndex=index; + }, + //发表评论 + sendComment(){ + let data={ + id:this.commentsSource.length+1, + user:"匿名用户", + videoId:this.playedVideo.id, + content:this.commentContent + } + this.commentsSource.push(data) + this.commentContent="" + }, + //评论输入框改变事件 + commentChanged({value}){ + this.commentContent=value + }, + //流转 + remoteIt:async function(){ + await FeatureAbility.continueAbility(); + }, + //展开倍数菜单 + showSpeedMenu(){ + this.$element("speedPopup").show() + }, + //监听控制栏显示时间 + watchShowToolsTimeEvent(newV,oldV){ + if(newV>0){ + clearTimeout(this.watchTimer) + this.watchTimer=setTimeout(()=>{ + if(newV>oldV) + this.showToolsTime=newV + --this.showToolsTime; + },1000) + }else{ + this.$element("speedPopup").hide() + } + }, + /*-------------------------------分布式迁移相关函数----------------------------------------*/ + //判单当前是否适合迁移 + onStartContinuation(){ + return true; + }, + onSaveData(saveData){ + Object.assign(saveData, this.shareData) + }, + onCompleteContinuation(code) { + // 迁移操作完成,code返回结果 + console.info("CompleteContinuation: code = " + code); + }, + //接收到的迁移数据 + onRestoreData(restoreData){ + this.isAutoPlay=true + Object.assign(restoreData,this.shareData) + } + +} diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/resources/base/element/string.json" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/resources/base/element/string.json" new file mode 100644 index 0000000000000000000000000000000000000000..913a72c955d00760bb517694432b967dd3e1ec3f --- /dev/null +++ "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/resources/base/element/string.json" @@ -0,0 +1,12 @@ +{ + "string": [ + { + "name": "entry_MainAbility", + "value": "视频播放器" + }, + { + "name": "mainability_description", + "value": "JS_Empty Ability" + } + ] +} \ No newline at end of file diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/resources/base/media/icon.png" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/resources/base/media/icon.png" new file mode 100644 index 0000000000000000000000000000000000000000..724ece1b24216730fe4d4b6bf14ed980921c732b Binary files /dev/null and "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/main/resources/base/media/icon.png" differ diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/ohosTest/java/com/panda_coder/player/ExampleOhosTest.java" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/ohosTest/java/com/panda_coder/player/ExampleOhosTest.java" new file mode 100644 index 0000000000000000000000000000000000000000..f7235d3690dec873dd27c8f480d1be595ad5da11 --- /dev/null +++ "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/ohosTest/java/com/panda_coder/player/ExampleOhosTest.java" @@ -0,0 +1,14 @@ +package com.panda_coder.player; + +import ohos.aafwk.ability.delegation.AbilityDelegatorRegistry; +import org.junit.Test; + +import static org.junit.Assert.assertEquals; + +public class ExampleOhosTest { + @Test + public void testBundleName() { + final String actualBundleName = AbilityDelegatorRegistry.getArguments().getTestBundleName(); + assertEquals("com.panda_coder.player", actualBundleName); + } +} \ No newline at end of file diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/ohosTest/js/default/app.js" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/ohosTest/js/default/app.js" new file mode 100644 index 0000000000000000000000000000000000000000..55b67e96deb821033f71d30b6fff05efdeb0d901 --- /dev/null +++ "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/ohosTest/js/default/app.js" @@ -0,0 +1,8 @@ +export default { + onCreate() { + console.info('TestApplication onCreate'); + }, + onDestroy() { + console.info('TestApplication onDestroy'); + } +}; diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/ohosTest/js/default/i18n/en-US.json" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/ohosTest/js/default/i18n/en-US.json" new file mode 100644 index 0000000000000000000000000000000000000000..55561b83737c3c31d082fbfa11e5fc987a351104 --- /dev/null +++ "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/ohosTest/js/default/i18n/en-US.json" @@ -0,0 +1,8 @@ +{ + "strings": { + "hello": "Hello", + "world": "World" + }, + "Files": { + } +} \ No newline at end of file diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/ohosTest/js/default/i18n/zh-CN.json" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/ohosTest/js/default/i18n/zh-CN.json" new file mode 100644 index 0000000000000000000000000000000000000000..cce1af06761a42add0cac1a0567aa3237eda8cb4 --- /dev/null +++ "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/ohosTest/js/default/i18n/zh-CN.json" @@ -0,0 +1,8 @@ +{ + "strings": { + "hello": "您好", + "world": "世界" + }, + "Files": { + } +} \ No newline at end of file diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/ohosTest/js/default/pages/index/index.css" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/ohosTest/js/default/pages/index/index.css" new file mode 100644 index 0000000000000000000000000000000000000000..4280f46eb56bbe20d60c8aaf4c7f55a444218174 --- /dev/null +++ "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/ohosTest/js/default/pages/index/index.css" @@ -0,0 +1,11 @@ +.container { + flex-direction: column; + justify-content: center; + align-items: center; + width: 100%; + height: 100%; +} + +.title { + font-size: 100px; +} diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/ohosTest/js/default/pages/index/index.hml" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/ohosTest/js/default/pages/index/index.hml" new file mode 100644 index 0000000000000000000000000000000000000000..f64b040a5ae394dbaa5e185e1ecd4f4556b92184 --- /dev/null +++ "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/ohosTest/js/default/pages/index/index.hml" @@ -0,0 +1,5 @@ +
+ + {{ $t('strings.hello') }} {{ title }} + +
diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/ohosTest/js/default/pages/index/index.js" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/ohosTest/js/default/pages/index/index.js" new file mode 100644 index 0000000000000000000000000000000000000000..8be2df2479a8da755ed800ad70d2b6247e21b8a2 --- /dev/null +++ "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/ohosTest/js/default/pages/index/index.js" @@ -0,0 +1,41 @@ +import file from '@system.file' +import app from '@system.app' +import device from '@system.device' +import router from '@system.router' +import {Core, Constant, ExpectExtend, ReportExtend, InstrumentLog} from 'deccjsunit/index' + +export default { + data: { + title: "" + }, + onInit() { + this.title = this.$t('strings.world'); + }, + onShow() { + console.info('onShow finish') + const core = Core.getInstance() + const expectExtend = new ExpectExtend({ + 'id': 'extend' + }) + const reportExtend = new ReportExtend(file) + const instrumentLog = new InstrumentLog({ + 'id': 'report', + 'version': '1.0.3' + }) + core.addService('expect', expectExtend) + core.addService('report', reportExtend) + core.addService('report', instrumentLog) + core.init() + core.subscribeEvent('spec', instrumentLog) + core.subscribeEvent('suite', instrumentLog) + core.subscribeEvent('task', instrumentLog) + + const configService = core.getDefaultService('config') + configService.setConfig(this) + + require('../../../test/List.test') + core.execute() + }, + onReady() { + }, +} \ No newline at end of file diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/ohosTest/js/test/ExampleJsunit.test.js" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/ohosTest/js/test/ExampleJsunit.test.js" new file mode 100644 index 0000000000000000000000000000000000000000..b6d74caed96ddede98edd1bc9292f6568cd1cfd1 --- /dev/null +++ "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/ohosTest/js/test/ExampleJsunit.test.js" @@ -0,0 +1,10 @@ +import app from '@system.app' +import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index' + +describe('appInfoTest', function () { + it('app_info_test_001', 0, function () { + var info = app.getInfo() + expect(info.versionName).assertEqual('1.0') + expect(info.versionCode).assertEqual('3') + }) +}) \ No newline at end of file diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/ohosTest/js/test/List.test.js" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/ohosTest/js/test/List.test.js" new file mode 100644 index 0000000000000000000000000000000000000000..305eb5bb254cd4802afaffebe68fca2f9436159f --- /dev/null +++ "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/ohosTest/js/test/List.test.js" @@ -0,0 +1 @@ +require('./ExampleJsunit.test.js') \ No newline at end of file diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/ohosTest/resources/base/element/string.json" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/ohosTest/resources/base/element/string.json" new file mode 100644 index 0000000000000000000000000000000000000000..49779de205deef69893b56527232fe9882365dbc --- /dev/null +++ "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/ohosTest/resources/base/element/string.json" @@ -0,0 +1,12 @@ +{ + "string": [ + { + "name": "app_name", + "value": "Player" + }, + { + "name": "mainability_description", + "value": "hap sample empty page" + } + ] +} diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/ohosTest/resources/base/media/icon.png" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/ohosTest/resources/base/media/icon.png" new file mode 100644 index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c Binary files /dev/null and "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/entry/src/ohosTest/resources/base/media/icon.png" differ diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/gradle.properties" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/gradle.properties" new file mode 100644 index 0000000000000000000000000000000000000000..be492496f9a20ac2d980ef4fc30061f4184c1c40 --- /dev/null +++ "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/gradle.properties" @@ -0,0 +1,13 @@ +# Project-wide Gradle settings. +# IDE (e.g. DevEco Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +# If the Chinese output is garbled, please configure the following parameter. +# This function is enabled by default when the DevEco Studio builds the hap/app,if you need disable gradle parallel,you should set org.gradle.parallel false. +# more information see https://docs.gradle.org/current/userguide/performance.html +# org.gradle.parallel=false +# org.gradle.jvmargs=-Dfile.encoding=GBK \ No newline at end of file diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/gradle/wrapper/gradle-wrapper.jar" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/gradle/wrapper/gradle-wrapper.jar" new file mode 100644 index 0000000000000000000000000000000000000000..490fda8577df6c95960ba7077c43220e5bb2c0d9 Binary files /dev/null and "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/gradle/wrapper/gradle-wrapper.jar" differ diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/gradle/wrapper/gradle-wrapper.properties" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/gradle/wrapper/gradle-wrapper.properties" new file mode 100644 index 0000000000000000000000000000000000000000..f59159e865d4b59feb1b8c44b001f62fc5d58df4 --- /dev/null +++ "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/gradle/wrapper/gradle-wrapper.properties" @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://repo.huaweicloud.com/gradle/gradle-6.3-bin.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/gradlew" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/gradlew" new file mode 100644 index 0000000000000000000000000000000000000000..2fe81a7d95e4f9ad2c9b2a046707d36ceb3980b3 --- /dev/null +++ "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/gradlew" @@ -0,0 +1,183 @@ +#!/usr/bin/env sh + +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=`expr $i + 1` + done + case $i in + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=`save "$@"` + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +exec "$JAVACMD" "$@" diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/gradlew.bat" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/gradlew.bat" new file mode 100644 index 0000000000000000000000000000000000000000..62bd9b9ccefea2b65ae41e5d9a545e2021b90a1d --- /dev/null +++ "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/gradlew.bat" @@ -0,0 +1,103 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/package.json" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/package.json" new file mode 100644 index 0000000000000000000000000000000000000000..0967ef424bce6791893e9a57bb952f80fd536e93 --- /dev/null +++ "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/package.json" @@ -0,0 +1 @@ +{} diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/settings.gradle" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/settings.gradle" new file mode 100644 index 0000000000000000000000000000000000000000..4773db73233a570c2d0c01a22e75321acfbf7a07 --- /dev/null +++ "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/app\346\272\220\347\240\201/Player/settings.gradle" @@ -0,0 +1 @@ +include ':entry' diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/\346\274\224\347\244\272\350\247\206\351\242\221/\345\210\206\345\270\203\345\274\217\346\274\224\347\244\272\350\247\206\351\242\221.mp4" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/\346\274\224\347\244\272\350\247\206\351\242\221/\345\210\206\345\270\203\345\274\217\346\274\224\347\244\272\350\247\206\351\242\221.mp4" new file mode 100644 index 0000000000000000000000000000000000000000..4e46b66880f85fad77baae17c583061526fd13b8 Binary files /dev/null and "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/\346\274\224\347\244\272\350\247\206\351\242\221/\345\210\206\345\270\203\345\274\217\346\274\224\347\244\272\350\247\206\351\242\221.mp4" differ diff --git "a/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/\346\274\224\347\244\272\350\247\206\351\242\221/\347\225\214\351\235\242\345\270\203\345\261\200\350\247\206\351\242\221.mp4" "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/\346\274\224\347\244\272\350\247\206\351\242\221/\347\225\214\351\235\242\345\270\203\345\261\200\350\247\206\351\242\221.mp4" new file mode 100644 index 0000000000000000000000000000000000000000..a03bf476f990237c815b7463c4e53c18784e6d08 Binary files /dev/null and "b/panda_coder\347\232\204\345\217\202\350\265\233\344\275\234\345\223\201/\346\274\224\347\244\272\350\247\206\351\242\221/\347\225\214\351\235\242\345\270\203\345\261\200\350\247\206\351\242\221.mp4" differ