1.1.81 • Published 2 years ago

@tg1518/react-native-lewin-aliyunplayer v1.1.81

Weekly downloads
-
License
ISC
Repository
github
Last release
2 years ago

react-native-lewin-aliyunplayer

阿里云播放器 react native,播放暂停等1.0版本没有UI,需自定义

Table of contents

Install

1: yarn add 或者npm install

yarn add @tg1518/react-native-lewin-aliyunplayer

2: android需要配置build.gradle maven {url 'https://maven.aliyun.com/repository/releases'}

allprojects {
    repositories {
        mavenLocal()
        maven {
            // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
            url("$rootDir/../node_modules/react-native/android")
        }
        maven {
            // Android JSC is installed from npm
            url("$rootDir/../node_modules/jsc-android/dist")
        }
        maven {
            url 'https://maven.aliyun.com/repository/releases'
        }
        google()
        jcenter()
        maven { url 'https://www.jitpack.io' }
    }
}

3: android使用安全下载功能需要替换 massets目录下的encryptedApp.dat解密文件

下载组件

import AliModule from "@tg1518/react-native-lewin-aliyunplayer";
const {AliDow,AliPlayer} = AliModule

const aliDow = new AliDow({ //auth下载
    path:"保存地址",
    vid:"视频id",
    playAuth:"授权码",
    name:"名称"
});

//开始下载事件回调
aliDow.dow((res)=>{ 
    console.log(res,"事件")
})

//停止下载
await aliDow.stop()
//释放下载
await aliDow.release()
//获取下载记录
const logs = await aliDow.readJSON()
// AliDow.dirs

interface Dir{// android 软件文件路径
    outFileDir?:string; 
    innerFileDir?:string;
    outCacheDir?:string;
    innerCacheDir?:string;
}

播放组件

import AliModule from "@tg1518/react-native-lewin-aliyunplayer";
const {AliDow,AliPlayer} = AliModule


const authSource = {
    type:'auth',
    vid:"b0fbe08f.......65646b66988",
    playAuth:"eyJTZWN1cml0eVRva2VuIjoi....",
    region:"cn-shanghai"
}
const urlSource = {
    type:'url',
    url:'https://d-appimg.doctopia.com.cn/video/1626170384423967.mp4',
}
    
this.player?.startPlay()// 开始播放
this.player?.pausePlay()//暂停播放
this.player?.stopPlay() //停止播放 会销毁组件
this.player?.reloadPlay() //重载播放
this.player?.restartPlay() //重新播放
this.player?.destroyPlay() //释放。释放后播放器将不可再被使用
this.player?.seekTo() //跳转到指定位置,传入单位为秒
    
<AliPlayer
    ref={(e) => this.player = e}
    style={{ flex: 1 }}
    source={urlSource}
    setAutoPlay={true}
    setLoop={true}
    onAliCurrentPositionUpdate={(e) => {
        // console.log(e.nativeEvent)
    }}
    onAliPrepared={(e) => {
        console.log(e.nativeEvent)
    }}
/>

属性和方法回调,可以看index.tsx

interface AliPlayerProps {
    style?: StyleProp<ViewStyle>;
    source?: string; // 播放地址
    setAutoPlay?: boolean; // 是否自动播放
    setLoop?: boolean; // 是否循环播放
    setMute?: boolean; //是否静音
    enableHardwareDecoder?: boolean; //是否开启硬件解码
    setVolume?: number; //设置播放器音量,范围0~1.
    setSpeed?: number; //播放速率,0.5-2.0之间,1为正常播放
    setReferer?: string; //设置请求referer
    setUserAgent?: string; // 设置UserAgent
    setMirrorMode?: number; // 0:无镜像;1:横向;2:竖向
    setRotateMode?: number; // 设置旋转 0:0度;1:90度;2:180度;3:270度;
    setScaleMode?: number; // 设置画面缩放模式 0:宽高比适应;1:宽高比填充;2:拉伸填充;
    configHeader?: Array<any>; // 配置自定义header
    selectBitrateIndex?: number; // 切换清晰度  选择清晰度的index,-1代表自适应码率

    onAliCompletion?: (e: AliPlayerFuncParams<{ code: "onAliCompletion" }>) => void, // 播放完成事件
    onAliError?: (e: AliPlayerFuncParams<{ code: string; message: string }>) => void, // 出错事件
    onAliLoadingBegin?: (e: AliPlayerFuncParams<{ code: "onAliLoadingBegin" }>) => void, // 缓冲开始。
    onAliLoadingProgress?: (e: AliPlayerFuncParams<{ percent: number }>) => void, // 缓冲进度
    onAliLoadingEnd?: (e: AliPlayerFuncParams<{ code: "onAliLoadingEnd" }>) => void, // 缓冲结束
    onAliPrepared?: (e: AliPlayerFuncParams<{ duration: number }>) => void, // 准备成功事件
    onAliRenderingStart?: (e: AliPlayerFuncParams<{ code: "onRenderingStart" }>) => void, // 首帧渲染显示事件
    onAliSeekComplete?: (e: AliPlayerFuncParams<{ code: "onAliSeekComplete" }>) => void, // 拖动结束
    onAliCurrentPositionUpdate?: (e: AliPlayerFuncParams<{ position: number }>) => void, // 播放进度
    onAliBufferedPositionUpdate?: (e: AliPlayerFuncParams<{ position: number }>) => void, // 缓冲进度
    onAliAutoPlayStart?: (e: AliPlayerFuncParams<{ code: "onAliAutoPlayStart" }>) => void, // 自动播放开始
    onAliLoopingStart?: (e: AliPlayerFuncParams<{ code: "onAliLoopingStart" }>) => void, // 循环播放开始
    onAliBitrateChange?: (e: AliPlayerFuncParams<{ index: number; width: number; height: number }>) => void, // 切换清晰度
    onAliBitrateReady?: (e: AliPlayerFuncParams<{ index: number; width: number; height: number; bitrate: number }>) => void, // 获取清晰度回调
}

interface AliPlayerFuncParams<T> {
    nativeEvent: T
}
acornacorn-jsxabababsolute-pathacceptsajvabort-controlleracorn-globalsansi-escapesagent-baseacorn-walkanseransi-regexappdirsjsansi-colorsansi-stylesansi-fragmentsargparseanymatcharr-flattenarr-unionarray-filterarr-diffarray-maparray-unionarray-includesarray-reducearray-uniqueassign-symbolsarray.prototype.flatmapasapastral-regexast-typesasyncasync-limiterbabel-coreatobbabel-eslintasynckitbabel-plugin-dynamic-import-nodebabel-plugin-jest-hoistbabel-plugin-polyfill-corejs3babel-plugin-istanbulbalanced-matchbabel-plugin-polyfill-corejs2babel-plugin-polyfill-regeneratorbabel-plugin-syntax-trailing-function-commasbabel-preset-jestbabel-preset-fbjsbrace-expansionbabel-preset-current-node-syntaxbase64-jsbasebig-integerbplist-parserbplist-creatorbrowser-process-hrtimebserbracesbrowserslistbuffer-fromcallsitesbytescache-basecall-bindcaller-callsitecaller-pathcamelcasecaniuse-litecapture-exitchalkclass-utilschar-regexci-infocjs-module-lexercli-spinnerscliuiclone-deepcli-cursorclonecolor-convertcollect-v8-coveragecocolor-namecollection-visitcommand-existscolorettecommandercombined-streamcolorsconcat-mapcommondirconnectcomponent-emittercompressibleconvert-source-mapcompressioncore-util-iscore-js-compatcsstypecopy-descriptorcross-spawncosmiconfigdebugdecamelizecssstyledata-urlsdeep-iscssomdayjsdecimal.jsdeepmergedelayed-streamdecode-uri-componentdedentdefaultsdenodeifydefine-propertydetect-newlinedefine-propertiesdiff-sequencesdir-globdestroydomexceptiondepdee-firstemoji-regexelectron-to-chromiumdoctrineemitteryencodeurlend-of-streamerror-exenvinfoenquirererror-stack-parseres-abstracterrorhandlerescape-htmles-to-primitiveescape-string-regexpescaladeeslint-config-prettierescodegeneslint-plugin-eslint-commentseslint-plugin-jesteslint-plugin-flowtypeeslint-scopeeslint-utilseslint-plugin-prettiereslint-visitor-keysespreeeslint-plugin-reactesqueryesrecurseestraverseeslint-plugin-react-nativeeslint-plugin-react-native-globalseslint-plugin-react-hooksesutilsesprimaetagevent-target-shimexec-shexecarn-fetch-blobfast-deep-equalfast-json-stable-stringifyexpand-bracketsfast-levenshteinextend-shallowexitexpectfile-entry-cacheextglobfast-globfast-difffb-watchmanfastqfinalhandlerfill-rangeflattedfind-upfind-cache-dirform-datafor-inflow-parserflat-cachefreshgensyncfs.realpathfragment-cachefunction-bindfs-extrafunctional-red-black-treeget-caller-fileget-intrinsicget-stdinget-package-typeget-streamglob-parenthas-flagglobalsglobbyglobget-valuegraceful-fshashas-bigintshermes-enginehas-valuehas-symbolshas-valueshtml-encoding-snifferhermes-parserhermes-profile-transformerignorehtml-escaperhttp-proxy-agenthttp-errorsimport-freshimurmurhashhttps-proxy-agenthuman-signalsiconv-liteimport-localinflightimage-sizeinternal-slotinheritsinvariantipis-arrayishis-bigintis-accessor-descriptoris-boolean-objectis-bufferis-ciis-data-descriptoris-extglobis-callableis-core-moduleis-globis-date-objectis-descriptoris-directoryis-extendableis-negative-zerois-generator-fnis-fullwidth-code-pointis-number-objectis-numberis-plain-objectis-regexis-streamis-potential-custom-element-nameis-stringis-windowsis-symbolistanbul-lib-coverageistanbul-lib-reportis-wslis-typedarrayisexeisarrayistanbul-lib-instrumentisobjectistanbul-lib-source-mapsistanbul-reportsjest-changed-filesjest-circusjest-clijest-configjest-diffjest-docblockjest-eachjest-get-typejest-environment-jsdomjest-environment-nodejest-jasmine2jest-leak-detectorjest-haste-mapjest-matcher-utilsjest-mockjest-regex-utiljest-resolve-dependenciesjest-message-utiljest-runnerjest-serializerjest-pnp-resolverjest-snapshotjest-resolvejest-runtimejest-validatejest-utiljest-watcherjest-workerjetifierjoijs-tokensjs-yamljson-schema-traversejsc-androidjscodeshiftjson-stable-stringify-without-jsonifyjsdomjson5jsescjsonfilejsonifylevnkind-ofkleurjson-parse-better-errorsjsx-ast-utilslodash.mergelevenklawlodashlodash.clonedeeplocate-pathlodash.throttlelodash.debouncelogkittylodash.truncatelog-symbolsmake-dirlru-cachemakeerrormerge-streamloose-envifymap-cachemap-visitmerge2metrometro-babel-transformermetro-babel-registermetro-configmetro-cachemetro-hermes-compilermetro-coremetro-cache-keymetro-minify-uglifymetro-react-native-babel-transformermetro-inspector-proxymetro-resolvermetro-runtimemetro-transform-workermetro-symbolicatemimeminimatchmetro-source-mapmetro-transform-pluginsmime-dbmime-typesmsminimistmicromatchmimic-fnmixin-deepnanomatchnegotiatormkdirpnode-fetchnatural-compareneo-asyncnice-trynocachenode-int64node-modules-regexpnode-dirnode-releasesnode-stream-zipnpm-run-pathnormalize-pathnwsapiobject-assignob1nullthrowsobject-inspectobject-keysobject-visitobject-copyobject.assignobject.entriesobject.fromentriesobject.pickoptionatoron-headersobject.valueson-finishedonceopenonetimeoraos-tmpdiroptionsp-each-seriesparent-modulep-finallyp-tryp-limitp-locateparse5parse-jsonparseurlpath-keypath-existspascalcasepath-is-absolutepath-parsepkg-dirpicomatchpath-typepifypiratesplistprettierposix-character-classesprelude-lsprettier-linter-helpersprogressprop-typespretty-formatpromisepromptspumpprocess-nextick-argspunycodepslrange-parserreact-isqueue-microtaskreact-native-codegenreact-refreshreact-devtools-corereadable-streamreact-shallow-rendererreadlineregeneraterecastregenerator-transformregenerate-unicode-propertiesregexp.prototype.flagsregexppregex-notregenerator-runtimeregjsgenregexpu-coreregjsparserremove-trailing-separatorrepeat-elementrequire-from-stringrepeat-stringrequire-directoryresolve-cwdresolverequire-main-filenamerequireindexretresolve-fromreusifyrestore-cursorresolve-urlrimrafrsvprun-parallelsafe-bufferschedulersafe-regexsafer-buffersaxsanesemversaxessendserve-staticset-blockingserialize-errorshallow-clonesetprototypeofshebang-commandshell-quoteshebang-regexset-valueside-channelsignal-exitsisteransisimple-plistslice-ansisnapdragonsnapdragon-nodeslashsnapdragon-utilsource-mapsource-map-resolvesource-map-urlsprintf-jssource-map-supportsplit-stringstack-utilsstackframestacktrace-parserstream-buffersstring-widthstatusesstatic-extendstring-lengthstring.prototype.matchallstring.prototype.trimendstrip-json-commentsstring.prototype.trimstartstring_decodersupports-colorstrip-ansistrip-bomstrip-final-newlinestrip-eofsudo-promptsymbol-treesupports-hyperlinkstemptableterminal-linktest-excludetext-tablethroatthrough2tmplto-fast-propertiestoidentifierto-regexto-object-pathtr46tslibto-regex-rangetough-cookietsutilstype-checktype-detecttype-festtypedarray-to-bufferuglify-esunbox-primitiveultronunicode-canonical-property-names-ecmascriptunicode-match-property-ecmascripturi-jsuniversalifyunicode-match-property-value-ecmascriptunion-valueunicode-property-aliases-ecmascriptunpipeunset-valueuseutil-deprecateurixuse-subscriptionv8-compile-cacheuuidutils-mergev8-to-istanbulvaryw3c-hr-timew3c-xmlserializerwalkervlqwcwidthwebidl-conversionswhatwg-encodingword-wrapwhatwg-fetchwhatwg-mimetypewhichwhatwg-urlwhich-modulewrappywhich-boxed-primitivewrap-ansiwrite-file-atomicwsxcodexmldocxmlbuilderxmlcharsyargs-parseryallistxml-name-validatory18nxmldomyargsxtend
1.1.8

2 years ago

1.1.7

2 years ago

1.1.6

2 years ago

1.1.5

2 years ago

1.1.81

2 years ago

1.1.74

2 years ago

1.1.73

2 years ago

1.1.43

2 years ago

1.1.4

2 years ago

1.1.3

2 years ago

1.1.2

2 years ago

1.1.1

2 years ago

1.1.0

2 years ago

1.0.9

2 years ago