接入保利威视demo
This commit is contained in:
@@ -1,10 +1,17 @@
|
||||
|
||||
import { runCatching, seconds } from '@polyvharmony/media-player-sdk';
|
||||
import { MeetingItemModel,ItemModel } from '../model/ItemModel'
|
||||
import { BasicConstant } from '@itcast/basic'
|
||||
import { promptAction, router } from '@kit.ArkUI';
|
||||
import { PLVMockMediaResourceData } from '../polyv/PLVMockMediaResourceData'
|
||||
import {
|
||||
PLVMediaPlayerSingleVideoPageParam
|
||||
} from 'media-player-common';
|
||||
@Preview
|
||||
@Component
|
||||
export struct ItemComp {
|
||||
item: MeetingItemModel = new MeetingItemModel({} as ItemModel)
|
||||
|
||||
|
||||
@State timeColor:ResourceStr=$r('app.color.ee432f')
|
||||
@State status:string=''
|
||||
@State heightss:Length=247
|
||||
@@ -57,7 +64,23 @@ export struct ItemComp {
|
||||
}
|
||||
.height(162).backgroundColor(Color.Orange)
|
||||
.margin({top:10,right:5}).clip(true).id('rr')
|
||||
.onClick(async()=>{
|
||||
const mediaResourcesResult = await runCatching(PLVMockMediaResourceData.getInstance().setupMediaResourcesFromLocal('e97dbe3e648aefc2eb6f68b96db9db6c_e'))
|
||||
if (mediaResourcesResult.success === false) {
|
||||
promptAction.showToast({
|
||||
message: `'视频数据初始化失败': ${mediaResourcesResult.error}`,
|
||||
duration: seconds(3).toMillis()
|
||||
})
|
||||
return
|
||||
}
|
||||
const mediaResource = mediaResourcesResult.data[0]
|
||||
router.pushUrl({
|
||||
url:'pages/VideoPage/PLVMediaPlayerSingleVideoPage',
|
||||
params: new PLVMediaPlayerSingleVideoPageParam(mediaResource)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
Row(){
|
||||
Image($r('app.media.meetingtime')).width(13).height(13)
|
||||
Text(this.getTime(this.item.begin_date,this.item.end_date)).fontSize(14)
|
||||
@@ -89,6 +112,7 @@ export struct ItemComp {
|
||||
}.backgroundColor($r('app.color.e4e4e4'))
|
||||
.width('100%').padding({left:10,right:10}).clip(true)
|
||||
|
||||
|
||||
}
|
||||
|
||||
getTime(str1:string, str2:string) {
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
|
||||
@Component
|
||||
export struct PLVMediaPlayerSingleVideo {
|
||||
build() {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
import { PLVMediaResource } from '@polyvharmony/media-player-sdk';
|
||||
import { PLVMockMediaResourceData } from './PLVMockMediaResourceData';
|
||||
|
||||
export class PLVMockFeedResourceDataSource implements IPLVMediaPlayerFeedResourceDataSource {
|
||||
async onLoadMoreData(fromIndex: number): Promise<PLVMediaResource[]> {
|
||||
const result = await PLVMockMediaResourceData.getInstance().getMediaResources();
|
||||
return result.slice(fromIndex, fromIndex + 5);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
export interface IPLVMediaPlayerFeedResourceDataSource {
|
||||
|
||||
onLoadMoreData(fromIndex: number): Promise<PLVMediaResource[]>
|
||||
|
||||
}
|
||||
@@ -0,0 +1,114 @@
|
||||
import {
|
||||
error,
|
||||
PLVGeneralApiManager,
|
||||
PLVMediaPlayerAppContext,
|
||||
PLVMediaResource,
|
||||
PLVUrlMediaResource,
|
||||
PLVViewerParam,
|
||||
PLVVodMainAccountAuthentication,
|
||||
PLVVodMediaResource
|
||||
} from '@polyvharmony/media-player-sdk';
|
||||
import {PLVMediaDownloadSetting} from '@polyvharmony/media-player-sdk-addon-cache-down';
|
||||
|
||||
// const mockAuthentication: PLVVodMainAccountAuthentication = {
|
||||
// userId: "cfb7a69a75",
|
||||
// secretKey: "4KtJhl9EqU"
|
||||
// }
|
||||
const mockAuthentication: PLVVodMainAccountAuthentication = {
|
||||
userId: "e97dbe3e64",
|
||||
secretKey: "zMV29c519P"
|
||||
}
|
||||
|
||||
const mockViewerParam: PLVViewerParam = {
|
||||
viewerId: "123",
|
||||
viewerName: "123"
|
||||
}
|
||||
|
||||
export class PLVMockMediaResourceData {
|
||||
|
||||
// <editor-fold defaultstate="collapsed" desc="单例">
|
||||
|
||||
private static readonly instance = new PLVMockMediaResourceData()
|
||||
|
||||
private constructor() {
|
||||
this.setupMediaResources()
|
||||
}
|
||||
|
||||
static getInstance() {
|
||||
return PLVMockMediaResourceData.instance
|
||||
}
|
||||
|
||||
// </editor-fold>
|
||||
|
||||
private mediaResources?: Promise<PLVMediaResource[]>
|
||||
|
||||
private setupMediaResources() {
|
||||
// this.setupMediaResourcesFromLocal()
|
||||
// this.setupMediaResourcesFromServer()
|
||||
}
|
||||
|
||||
getMediaResources(): Promise<PLVMediaResource[]> {
|
||||
if (!this.mediaResources) {
|
||||
error("Must call setup before getMediaResources")
|
||||
}
|
||||
return this.mediaResources
|
||||
}
|
||||
|
||||
public setupMediaResourcesFromLocal(vid:string):Promise<PLVMediaResource[]> {
|
||||
return this.mediaResources = Promise.resolve([
|
||||
vod(vid)
|
||||
// vod("e97dbe3e648aefc2eb6f68b96db9db6c_e"),
|
||||
// vod("e97dbe3e6401ea8f76617bafe32f57e9_e"),
|
||||
// vod("e97dbe3e64ed6e0aac558e43787df1b4_e"),
|
||||
// vod("e97dbe3e646f8f565c015f361025c51c_e"),
|
||||
// vod("e97dbe3e64755eda79bbda0c8c9a939e_e"),
|
||||
// vod("e97dbe3e6492596e7e680c4c7b99ca1b_e"),
|
||||
// vod("e97dbe3e641a81a1e87750a2522b22c9_e"),
|
||||
// vod("e97dbe3e64f6f6d1f75aa6d16a2d128e_e"),
|
||||
// vod("e97dbe3e64b6dd24f868c16335570343_e"),
|
||||
// vod("e97dbe3e64b2ab3301c3289a5731cbb0_e"),
|
||||
// vod("e97dbe3e649c4f6743ca640bda94230c_e"),
|
||||
// vod("e97dbe3e64ae88c87769c9dba0aad552_e"),
|
||||
// vod("e97dbe3e640cd100431e12a8f8313c7d_e"),
|
||||
// vod("e97dbe3e6423671524f4601cb652bd0d_e"),
|
||||
// vod("e97dbe3e645083078cb42da5aac89b7f_e"),
|
||||
// vod("e97dbe3e64414e6dad17196f652c021f_e"),
|
||||
// vod("e97dbe3e64fba07447f7c37b283fd76d_e"),
|
||||
// vod("e97dbe3e643ea0a62166780aeab7c43c_e"),
|
||||
// vod("e97dbe3e64436506a71c7cbeecf001de_e"),
|
||||
// vod("e97dbe3e64b564d0daac43002effcb48_e"),
|
||||
// vod("e97dbe3e64e4f1bd6c28c395703fc4d8_e"),
|
||||
// vod("e97dbe3e6400b7c243ecacf0a45e3fbb_e"),
|
||||
// vod("e97dbe3e648ca60cad8017983a07ecc9_e"),
|
||||
// vod("e97dbe3e646a24f4c61a45dcbf9354ce_e"),
|
||||
// vod("e97dbe3e641b079d268330cc274fe3b4_e"),
|
||||
// vod("e97dbe3e642eb6b15f9983949ffbdea7_e")
|
||||
])
|
||||
}
|
||||
|
||||
private setupMediaResourcesFromServer() {
|
||||
this.mediaResources = PLVGeneralApiManager.getVodVideoList(mockAuthentication, 1, 20)
|
||||
.then(result => {
|
||||
return result.data!.map(video => vod(video!.vid!))
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function vod(videoId: string): PLVVodMediaResource {
|
||||
// 默认下载路径
|
||||
const defaultDownloadRoot = PLVMediaDownloadSetting.defaultSetting(PLVMediaPlayerAppContext.getInstance().appContext!).downloadRootDirectory
|
||||
return {
|
||||
videoId: videoId,
|
||||
authentication: mockAuthentication,
|
||||
viewerParam: mockViewerParam,
|
||||
scene: "vod",
|
||||
localVideoSearchPaths: [defaultDownloadRoot]
|
||||
}
|
||||
}
|
||||
|
||||
function url(url: string): PLVUrlMediaResource {
|
||||
return {
|
||||
url: url
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user