Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Xts Acts
提交
5588ef72
X
Xts Acts
项目概览
OpenHarmony
/
Xts Acts
1 年多 前同步成功
通知
9
Star
22
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
X
Xts Acts
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
5588ef72
编写于
3月 11, 2022
作者:
F
fulizhong
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add httpPlayer testcases Signed-off-by: FULIZHONG<fulizhong@huawei.com>
Signed-off-by:
N
fulizhong
<
fulizhong@huawei.com
>
上级
b8b06d68
变更
19
显示空白变更内容
内联
并排
Showing
19 changed file
with
2302 addition
and
0 deletion
+2302
-0
multimedia/media/media_js_standard/httpPlayer/BUILD.gn
multimedia/media/media_js_standard/httpPlayer/BUILD.gn
+40
-0
multimedia/media/media_js_standard/httpPlayer/Test.json
multimedia/media/media_js_standard/httpPlayer/Test.json
+32
-0
multimedia/media/media_js_standard/httpPlayer/signature/openharmony_sx.p7b
...media_js_standard/httpPlayer/signature/openharmony_sx.p7b
+0
-0
multimedia/media/media_js_standard/httpPlayer/src/main/config.json
...a/media/media_js_standard/httpPlayer/src/main/config.json
+75
-0
multimedia/media/media_js_standard/httpPlayer/src/main/js/default/app.js
...a/media_js_standard/httpPlayer/src/main/js/default/app.js
+23
-0
multimedia/media/media_js_standard/httpPlayer/src/main/js/default/i18n/en-US.json
...s_standard/httpPlayer/src/main/js/default/i18n/en-US.json
+6
-0
multimedia/media/media_js_standard/httpPlayer/src/main/js/default/i18n/zh-CN.json
...s_standard/httpPlayer/src/main/js/default/i18n/zh-CN.json
+6
-0
multimedia/media/media_js_standard/httpPlayer/src/main/js/default/pages/index/index.css
...dard/httpPlayer/src/main/js/default/pages/index/index.css
+61
-0
multimedia/media/media_js_standard/httpPlayer/src/main/js/default/pages/index/index.hml
...dard/httpPlayer/src/main/js/default/pages/index/index.hml
+26
-0
multimedia/media/media_js_standard/httpPlayer/src/main/js/default/pages/index/index.js
...ndard/httpPlayer/src/main/js/default/pages/index/index.js
+47
-0
multimedia/media/media_js_standard/httpPlayer/src/main/js/default/pages/surfaceTest/surfaceTest.css
...yer/src/main/js/default/pages/surfaceTest/surfaceTest.css
+61
-0
multimedia/media/media_js_standard/httpPlayer/src/main/js/default/pages/surfaceTest/surfaceTest.hml
...yer/src/main/js/default/pages/surfaceTest/surfaceTest.hml
+26
-0
multimedia/media/media_js_standard/httpPlayer/src/main/js/default/pages/surfaceTest/surfaceTest.js
...ayer/src/main/js/default/pages/surfaceTest/surfaceTest.js
+33
-0
multimedia/media/media_js_standard/httpPlayer/src/main/js/test/HttpPlayerCompatibilityTest.test.js
...ayer/src/main/js/test/HttpPlayerCompatibilityTest.test.js
+480
-0
multimedia/media/media_js_standard/httpPlayer/src/main/js/test/HttpPlayerFuncCallbackTest.test.js
...layer/src/main/js/test/HttpPlayerFuncCallbackTest.test.js
+586
-0
multimedia/media/media_js_standard/httpPlayer/src/main/js/test/HttpPlayerFuncPromiseTest.test.js
...Player/src/main/js/test/HttpPlayerFuncPromiseTest.test.js
+771
-0
multimedia/media/media_js_standard/httpPlayer/src/main/js/test/List.test.js
...edia_js_standard/httpPlayer/src/main/js/test/List.test.js
+17
-0
multimedia/media/media_js_standard/httpPlayer/src/main/resources/base/element/string.json
...rd/httpPlayer/src/main/resources/base/element/string.json
+12
-0
multimedia/media/media_js_standard/httpPlayer/src/main/resources/base/media/icon.png
...tandard/httpPlayer/src/main/resources/base/media/icon.png
+0
-0
未找到文件。
multimedia/media/media_js_standard/httpPlayer/BUILD.gn
0 → 100644
浏览文件 @
5588ef72
# Copyright (C) 2022 Huawei Device Co., Ltd.
# 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
#
# http://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.
import("//test/xts/tools/build/suite.gni")
ohos_js_hap_suite("http_player_js_hap") {
hap_profile = "./src/main/config.json"
js2abc = true
deps = [
":http_player_js_assets",
":http_player_resources",
]
# shared_libraries = [
# "//third_party/giflib:libgif",
# "//third_party/libpng:libpng",
# ]
certificate_profile = "./signature/openharmony_sx.p7b"
hap_name = "HttpPlayerJsTest"
# part_name = "prebuilt_hap"
# subsystem_name = "xts"
}
ohos_js_assets("http_player_js_assets") {
source_dir = "./src/main/js/default"
}
ohos_resources("http_player_resources") {
sources = [ "./src/main/resources" ]
hap_profile = "./src/main/config.json"
}
multimedia/media/media_js_standard/httpPlayer/Test.json
0 → 100644
浏览文件 @
5588ef72
{
"description"
:
"Configuration for httpplayer Tests"
,
"driver"
:
{
"type"
:
"JSUnitTest"
,
"test-timeout"
:
"2000000"
,
"package"
:
"ohos.acts.multimedia.http.httpplayer"
,
"shell-timeout"
:
"60000"
},
"kits"
:
[
{
"type"
:
"PushKit"
,
"pre-push"
:
[
],
"push"
:
[
]
},
{
"type"
:
"ShellKit"
,
"run-command"
:
[
],
"teardown-command"
:[
]
},
{
"test-file-name"
:
[
"HttpPlayerJsTest.hap"
],
"type"
:
"AppInstallKit"
,
"cleanup-apps"
:
true
}
]
}
multimedia/media/media_js_standard/httpPlayer/signature/openharmony_sx.p7b
0 → 100644
浏览文件 @
5588ef72
文件已添加
multimedia/media/media_js_standard/httpPlayer/src/main/config.json
0 → 100644
浏览文件 @
5588ef72
{
"app"
:
{
"apiVersion"
:
{
"compatible"
:
6
,
"releaseType"
:
"Beta1"
,
"target"
:
7
},
"vendor"
:
"acts"
,
"bundleName"
:
"ohos.acts.multimedia.http.httpplayer"
,
"version"
:
{
"code"
:
1000000
,
"name"
:
"1.0.0"
}
},
"deviceConfig"
:
{
"default"
:
{
"debug"
:
true
}
},
"module"
:
{
"abilities"
:
[
{
"iconId"
:
16777218
,
"skills"
:
[
{
"entities"
:
[
"entity.system.home"
],
"actions"
:
[
"action.system.home"
]
}
],
"descriptionId"
:
16777217
,
"visible"
:
true
,
"labelId"
:
16777216
,
"icon"
:
"$media:icon"
,
"name"
:
"ohos.acts.multimedia.http.httpplayer.MainAbility"
,
"description"
:
"$string:mainability_description"
,
"label"
:
"$string:entry_MainAbility"
,
"type"
:
"page"
,
"homeAbility"
:
true
,
"launchType"
:
"standard"
}
],
"deviceType"
:
[
"phone"
,
"tablet"
,
"tv"
,
"wearable"
],
"mainAbility"
:
"ohos.acts.multimedia.http.httpplayer.MainAbility"
,
"distro"
:
{
"moduleType"
:
"entry"
,
"installationFree"
:
false
,
"deliveryWithInstall"
:
true
,
"moduleName"
:
"entry"
},
"package"
:
"ohos.acts.multimedia.http.httpplayer"
,
"name"
:
".MyApplication"
,
"js"
:
[
{
"pages"
:
[
"pages/index/index"
,
"pages/surfaceTest/surfaceTest"
],
"name"
:
"default"
,
"window"
:
{
"designWidth"
:
720
,
"autoDesignWidth"
:
true
}
}
]
}
}
\ No newline at end of file
multimedia/media/media_js_standard/httpPlayer/src/main/js/default/app.js
0 → 100644
浏览文件 @
5588ef72
/*
* Copyright (C) 2022 Huawei Device Co., Ltd.
* 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
*
* http://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.
*/
export
default
{
onCreate
()
{
console
.
info
(
'
AceApplication onCreate
'
);
},
onDestroy
()
{
console
.
info
(
'
AceApplication onDestroy
'
);
}
};
multimedia/media/media_js_standard/httpPlayer/src/main/js/default/i18n/en-US.json
0 → 100644
浏览文件 @
5588ef72
{
"strings"
:
{
"hello"
:
"Hello"
,
"world"
:
"World"
}
}
\ No newline at end of file
multimedia/media/media_js_standard/httpPlayer/src/main/js/default/i18n/zh-CN.json
0 → 100644
浏览文件 @
5588ef72
{
"strings"
:
{
"hello"
:
"您好"
,
"world"
:
"世界"
}
}
\ No newline at end of file
multimedia/media/media_js_standard/httpPlayer/src/main/js/default/pages/index/index.css
0 → 100644
浏览文件 @
5588ef72
/*
* Copyright (C) 2022 Huawei Device Co., Ltd.
* 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
*
* http://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.
*/
.container
{
flex-direction
:
column
;
justify-content
:
center
;
align-items
:
center
;
width
:
100%
;
height
:
100%
;
}
.title
{
font-size
:
40px
;
color
:
#000000
;
opacity
:
0.9
;
}
@media
screen
and
(
device-type
:
tablet
)
and
(
orientation
:
landscape
)
{
.title
{
font-size
:
100px
;
}
}
@media
screen
and
(
device-type
:
wearable
)
{
.title
{
font-size
:
28px
;
color
:
#FFFFFF
;
}
}
@media
screen
and
(
device-type
:
tv
)
{
.container
{
background-image
:
url("/common/images/Wallpaper.png")
;
background-size
:
cover
;
background-repeat
:
no-repeat
;
background-position
:
center
;
}
.title
{
font-size
:
100px
;
color
:
#FFFFFF
;
}
}
@media
screen
and
(
device-type
:
phone
)
and
(
orientation
:
landscape
)
{
.title
{
font-size
:
60px
;
}
}
multimedia/media/media_js_standard/httpPlayer/src/main/js/default/pages/index/index.hml
0 → 100644
浏览文件 @
5588ef72
<!--
Copyright (c) 2022 Huawei Device Co., Ltd.
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
http://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.
-->
<div class="container">
<text class="title">
{{ $t('strings.hello') }} {{ title }}
</text>
<Xcomponent id = 'XcomponentId'
type = 'surface'
onload = 'LoadXcomponent'
style = "width:720px;height:480px;border-color:red;border-width:5px">
</Xcomponent>
</div>
multimedia/media/media_js_standard/httpPlayer/src/main/js/default/pages/index/index.js
0 → 100644
浏览文件 @
5588ef72
/*
* Copyright (C) 2022 Huawei Device Co., Ltd.
* 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
*
* http://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.
*/
import
{
Core
,
ExpectExtend
}
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
'
})
core
.
addService
(
'
expect
'
,
expectExtend
)
core
.
init
()
const
configService
=
core
.
getDefaultService
(
'
config
'
)
this
.
timeout
=
60000
configService
.
setConfig
(
this
)
setTimeout
(
function
()
{
require
(
'
../../../test/List.test
'
)
core
.
execute
()
},
2000
)
},
onReady
()
{
},
LoadXcomponent
()
{
globalThis
.
value
=
this
.
$element
(
'
XcomponentId
'
).
getComponentSurfaceId
()
},
}
\ No newline at end of file
multimedia/media/media_js_standard/httpPlayer/src/main/js/default/pages/surfaceTest/surfaceTest.css
0 → 100644
浏览文件 @
5588ef72
/*
* Copyright (C) 2022 Huawei Device Co., Ltd.
* 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
*
* http://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.
*/
.container
{
flex-direction
:
column
;
justify-content
:
center
;
align-items
:
center
;
width
:
100%
;
height
:
100%
;
}
.title
{
font-size
:
40px
;
color
:
#000000
;
opacity
:
0.9
;
}
@media
screen
and
(
device-type
:
tablet
)
and
(
orientation
:
landscape
)
{
.title
{
font-size
:
100px
;
}
}
@media
screen
and
(
device-type
:
wearable
)
{
.title
{
font-size
:
28px
;
color
:
#FFFFFF
;
}
}
@media
screen
and
(
device-type
:
tv
)
{
.container
{
background-image
:
url("/common/images/Wallpaper.png")
;
background-size
:
cover
;
background-repeat
:
no-repeat
;
background-position
:
center
;
}
.title
{
font-size
:
100px
;
color
:
#FFFFFF
;
}
}
@media
screen
and
(
device-type
:
phone
)
and
(
orientation
:
landscape
)
{
.title
{
font-size
:
60px
;
}
}
multimedia/media/media_js_standard/httpPlayer/src/main/js/default/pages/surfaceTest/surfaceTest.hml
0 → 100644
浏览文件 @
5588ef72
<!--
Copyright (c) 2022 Huawei Device Co., Ltd.
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
http://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.
-->
<div class="container">
<text class="title">
VideoPlayer Test
</text>
<Xcomponent id = 'XcomponentId2'
type = 'surface'
onload = 'LoadXcomponent2'
style = "width:720px;height:480px;border-color:red;border-width:5px">
</Xcomponent>
</div>
multimedia/media/media_js_standard/httpPlayer/src/main/js/default/pages/surfaceTest/surfaceTest.js
0 → 100644
浏览文件 @
5588ef72
/*
* Copyright (C) 2022 Huawei Device Co., Ltd.
* 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
*
* http://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.
*/
import
{
Core
,
ExpectExtend
}
from
'
deccjsunit/index
'
import
Fileio
from
'
@ohos.fileio
'
export
default
{
data
:
{
title
:
""
},
onInit
()
{
this
.
title
=
this
.
$t
(
'
strings.world
'
);
},
onShow
()
{
},
onReady
()
{
},
LoadXcomponent2
()
{
globalThis
.
value
=
this
.
$element
(
'
XcomponentId2
'
).
getXComponentSurfaceId
()
},
}
\ No newline at end of file
multimedia/media/media_js_standard/httpPlayer/src/main/js/test/HttpPlayerCompatibilityTest.test.js
0 → 100644
浏览文件 @
5588ef72
/*
* Copyright (C) 2022 Huawei Device Co., Ltd.
* 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
*
* http://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.
*/
import
media
from
'
@ohos.multimedia.media
'
import
Fileio
from
'
@ohos.fileio
'
import
router
from
'
@system.router
'
import
{
describe
,
beforeAll
,
beforeEach
,
afterEach
,
afterAll
,
it
,
expect
}
from
'
deccjsunit/index
'
describe
(
'
HttpPlayerFuncPromiseTest
'
,
function
()
{
const
BASE_PATH
=
'
http://123.57.24.33:8000/
'
const
PLAY_TIME
=
3000
;
const
SEEK_TIME
=
5000
;
const
MAX_VOLUME
=
1
;
const
DELTA_TIME
=
1000
;
let
isToSeek
=
false
;
let
isToDuration
=
false
;
let
surfaceID
=
''
;
beforeAll
(
function
()
{
console
.
info
(
'
beforeAll case
'
);
})
beforeEach
(
async
function
()
{
await
toNewPage
();
await
msleep
(
1000
).
then
(()
=>
{
},
failureCallback
).
catch
(
catchCallback
);
isToSeek
=
false
;
isToDuration
=
false
;
console
.
info
(
'
beforeEach case
'
);
})
afterEach
(
async
function
()
{
await
router
.
clear
();
console
.
info
(
'
afterEach case
'
);
})
afterAll
(
function
()
{
console
.
info
(
'
afterAll case
'
);
})
function
sleep
(
time
)
{
for
(
let
t
=
Date
.
now
();
Date
.
now
()
-
t
<=
time
;);
}
function
msleep
(
ms
)
{
return
new
Promise
((
resolve
)
=>
setTimeout
(
resolve
,
ms
));
}
function
failureCallback
(
error
)
{
expect
().
assertFail
();
console
.
info
(
`case error called,errMessage is
${
error
.
message
}
`
);
}
function
catchCallback
(
error
)
{
expect
().
assertFail
();
console
.
info
(
`case error called,errMessage is
${
error
.
message
}
`
);
}
function
printfDescription
(
obj
)
{
let
description
=
""
;
for
(
let
i
in
obj
)
{
let
property
=
obj
[
i
];
console
.
info
(
'
case key is
'
+
i
);
console
.
info
(
'
case value is
'
+
property
);
description
+=
i
+
"
=
"
+
property
+
"
\n
"
;
}
}
async
function
toNewPage
()
{
let
path
=
'
pages/surfaceTest/surfaceTest
'
;
let
options
=
{
uri
:
path
,
}
try
{
let
result
=
await
router
.
push
(
options
);
}
catch
{
console
.
info
(
'
case route failed
'
);
}
}
async
function
playAudioSource
(
audioSource
,
done
)
{
let
audioPlayer
=
media
.
createAudioPlayer
();
audioPlayer
.
on
(
'
dataLoad
'
,
()
=>
{
console
.
info
(
'
case set source success
'
);
expect
(
audioPlayer
.
state
).
assertEqual
(
'
paused
'
);
expect
(
audioPlayer
.
currentTime
).
assertEqual
(
0
);
audioPlayer
.
play
();
});
audioPlayer
.
on
(
'
play
'
,
()
=>
{
console
.
info
(
'
case start to play
'
);
expect
(
audioPlayer
.
state
).
assertEqual
(
'
playing
'
);
sleep
(
PLAY_TIME
);
if
(
!
isToSeek
)
{
audioPlayer
.
pause
();
}
else
{
audioPlayer
.
seek
(
SEEK_TIME
);
}
});
audioPlayer
.
on
(
'
pause
'
,
()
=>
{
console
.
info
(
'
case now is paused
'
);
expect
(
audioPlayer
.
state
).
assertEqual
(
'
paused
'
);
audioPlayer
.
setVolume
(
MAX_VOLUME
);
});
audioPlayer
.
on
(
'
stop
'
,
()
=>
{
console
.
info
(
'
case stop success
'
);
expect
(
audioPlayer
.
state
).
assertEqual
(
'
stopped
'
);
audioPlayer
.
reset
();
});
audioPlayer
.
on
(
'
reset
'
,
()
=>
{
console
.
info
(
'
case reset success
'
);
expect
(
audioPlayer
.
state
).
assertEqual
(
'
idle
'
);
audioPlayer
.
release
();
audioPlayer
=
undefined
;
done
();
});
audioPlayer
.
on
(
'
timeUpdate
'
,
(
seekDoneTime
)
=>
{
if
(
typeof
(
seekDoneTime
)
==
"
undefined
"
)
{
console
.
info
(
`case seek filed,errcode is
${
seekDoneTime
}
`
);
audioPlayer
.
release
();
expect
().
assertFail
();
done
();
return
;
}
console
.
info
(
'
case seek success, and seek time is
'
+
seekDoneTime
);
if
(
!
isToDuration
)
{
expect
(
SEEK_TIME
).
assertEqual
(
seekDoneTime
);
isToDuration
=
true
;
sleep
(
PLAY_TIME
);
audioPlayer
.
seek
(
audioPlayer
.
duration
);
}
else
{
expect
(
audioPlayer
.
duration
).
assertEqual
(
seekDoneTime
);
}
});
audioPlayer
.
on
(
'
volumeChange
'
,
()
=>
{
console
.
info
(
'
case set volume value to
'
+
MAX_VOLUME
);
audioPlayer
.
play
();
isToSeek
=
true
;
});
audioPlayer
.
on
(
'
finish
'
,
()
=>
{
console
.
info
(
'
case play end
'
);
expect
(
audioPlayer
.
state
).
assertEqual
(
'
stopped
'
);
audioPlayer
.
stop
();
});
audioPlayer
.
on
(
'
error
'
,
(
err
)
=>
{
console
.
info
(
`case error called,errName is
${
err
.
name
}
`
);
console
.
info
(
`case error called,errCode is
${
err
.
code
}
`
);
console
.
info
(
`case error called,errMessage is
${
err
.
message
}
`
);
audioPlayer
.
release
();
expect
().
assertFail
();
done
();
});
audioPlayer
.
src
=
audioSource
;
}
async
function
playVideoSource
(
path
)
{
let
videoPlayer
=
null
;
surfaceID
=
globalThis
.
value
;
await
media
.
createVideoPlayer
().
then
((
video
)
=>
{
if
(
typeof
(
video
)
!=
'
undefined
'
)
{
console
.
info
(
'
case createVideoPlayer success
'
);
videoPlayer
=
video
;
}
else
{
console
.
info
(
'
case createVideoPlayer is failed
'
);
expect
().
assertFail
();
}
},
failureCallback
).
catch
(
catchCallback
);
videoPlayer
.
on
(
'
error
'
,
(
err
)
=>
{
console
.
info
(
`case error called,errMessage is
${
err
.
message
}
`
);
expect
().
assertFail
();
});
videoPlayer
.
url
=
path
;
await
videoPlayer
.
setDisplaySurface
(
surfaceID
).
then
(()
=>
{
console
.
info
(
'
case setDisplaySurface success
'
);
},
failureCallback
).
catch
(
catchCallback
);
await
videoPlayer
.
prepare
().
then
(()
=>
{
console
.
info
(
'
case prepare called!!
'
);
},
failureCallback
).
catch
(
catchCallback
);
await
videoPlayer
.
getTrackDescription
().
then
((
arrayList
)
=>
{
console
.
info
(
'
case getTrackDescription called!!
'
);
if
(
typeof
(
arrayList
)
!=
'
undefined
'
)
{
for
(
let
i
=
0
;
i
<
arrayList
.
length
;
i
++
)
{
printfDescription
(
arrayList
[
i
]);
}
}
else
{
console
.
info
(
'
case getTrackDescription is failed
'
);
expect
().
assertFail
();
}
},
failureCallback
).
catch
(
catchCallback
);
let
startTime
=
videoPlayer
.
currentTime
;
await
videoPlayer
.
play
().
then
(()
=>
{
console
.
info
(
'
case play called!!
'
);
sleep
(
PLAY_TIME
);
},
failureCallback
).
catch
(
catchCallback
);
let
endTime
=
videoPlayer
.
currentTime
;
expect
(
endTime
-
startTime
).
assertClose
(
PLAY_TIME
,
DELTA_TIME
);
await
videoPlayer
.
pause
().
then
(()
=>
{
console
.
info
(
'
case pause called!!
'
);
},
failureCallback
).
catch
(
catchCallback
);
await
videoPlayer
.
seek
(
SEEK_TIME
).
then
((
seekDoneTime
)
=>
{
console
.
info
(
'
case seek called and seekDoneTime is
'
+
seekDoneTime
);
},
failureCallback
).
catch
(
catchCallback
);
await
videoPlayer
.
play
().
then
(()
=>
{
console
.
info
(
'
case play called!!
'
);
sleep
(
PLAY_TIME
);
},
failureCallback
).
catch
(
catchCallback
);
await
videoPlayer
.
setSpeed
(
media
.
PlaybackSpeed
.
SPEED_FORWARD_0_75_X
).
then
((
speedMode
)
=>
{
console
.
info
(
'
case setSpeed called and speedMode is
'
+
speedMode
);
},
failureCallback
).
catch
(
catchCallback
);
await
videoPlayer
.
setSpeed
(
media
.
PlaybackSpeed
.
SPEED_FORWARD_1_00_X
).
then
((
speedMode
)
=>
{
console
.
info
(
'
case setSpeed called and speedMode is
'
+
speedMode
);
},
failureCallback
).
catch
(
catchCallback
);
await
videoPlayer
.
setSpeed
(
media
.
PlaybackSpeed
.
SPEED_FORWARD_1_25_X
).
then
((
speedMode
)
=>
{
console
.
info
(
'
case setSpeed called and speedMode is
'
+
speedMode
);
},
failureCallback
).
catch
(
catchCallback
);
await
videoPlayer
.
setSpeed
(
media
.
PlaybackSpeed
.
SPEED_FORWARD_1_75_X
).
then
((
speedMode
)
=>
{
console
.
info
(
'
case setSpeed called and speedMode is
'
+
speedMode
);
},
failureCallback
).
catch
(
catchCallback
);
await
videoPlayer
.
setSpeed
(
media
.
PlaybackSpeed
.
SPEED_FORWARD_2_00_X
).
then
((
speedMode
)
=>
{
console
.
info
(
'
case setSpeed called and speedMode is
'
+
speedMode
);
},
failureCallback
).
catch
(
catchCallback
);
await
videoPlayer
.
setVolume
(
1
).
then
(()
=>
{
console
.
info
(
'
case setVolume called
'
);
},
failureCallback
).
catch
(
catchCallback
);
await
videoPlayer
.
stop
().
then
(()
=>
{
console
.
info
(
'
case stop called!!
'
);
},
failureCallback
).
catch
(
catchCallback
);
await
videoPlayer
.
reset
().
then
(()
=>
{
console
.
info
(
'
case reset called!!
'
);
},
failureCallback
).
catch
(
catchCallback
);
await
videoPlayer
.
release
().
then
(()
=>
{
console
.
info
(
'
case release called!!
'
);
},
failureCallback
).
catch
(
catchCallback
);
}
/* *
* @tc.number : SUB_MEDIA_VIDEO_PLAYER_HTTP_FORMAT_MP4_0100
* @tc.name : 001.H264_AAC
* @tc.desc : Http playback control test
* @tc.size : MediumTest
* @tc.type : Function test
* @tc.level : Level1
*/
it
(
'
SUB_MEDIA_VIDEO_PLAYER_HTTP_FORMAT_MP4_0100
'
,
0
,
async
function
(
done
)
{
let
path
=
BASE_PATH
+
'
H264_AAC.mp4
'
;
await
playVideoSource
(
path
);
done
();
})
/* *
* @tc.number : SUB_MEDIA_VIDEO_PLAYER_HTTP_FORMAT_MP4_0200
* @tc.name : 002.H264_MP3
* @tc.desc : Http playback control test
* @tc.size : MediumTest
* @tc.type : Function test
* @tc.level : Level1
*/
it
(
'
SUB_MEDIA_VIDEO_PLAYER_HTTP_FORMAT_MP4_0200
'
,
0
,
async
function
(
done
)
{
let
path
=
BASE_PATH
+
'
H264_MP3.mp4
'
;
await
playVideoSource
(
path
);
done
();
})
/* *
* @tc.number : SUB_MEDIA_VIDEO_PLAYER_HTTP_FORMAT_TS_0100
* @tc.name : 001.H264_AAC
* @tc.desc : Http playback control test
* @tc.size : MediumTest
* @tc.type : Function test
* @tc.level : Level1
*/
it
(
'
SUB_MEDIA_VIDEO_PLAYER_HTTP_FORMAT_TS_0100
'
,
0
,
async
function
(
done
)
{
let
path
=
BASE_PATH
+
'
H264_AAC.ts
'
;
await
playVideoSource
(
path
);
done
();
})
/* *
* @tc.number : SUB_MEDIA_VIDEO_PLAYER_HTTP_FORMAT_TS_0200
* @tc.name : 002.H264_MP3
* @tc.desc : Http playback control test
* @tc.size : MediumTest
* @tc.type : Function test
* @tc.level : Level1
*/
it
(
'
SUB_MEDIA_VIDEO_PLAYER_HTTP_FORMAT_TS_0200
'
,
0
,
async
function
(
done
)
{
let
path
=
BASE_PATH
+
'
H264_MP3.ts
'
;
await
playVideoSource
(
path
);
done
();
})
/* *
* @tc.number : SUB_MEDIA_VIDEO_PLAYER_HTTP_FORMAT_MKV_0100
* @tc.name : 001.H264_AAC
* @tc.desc : Http playback control test
* @tc.size : MediumTest
* @tc.type : Function test
* @tc.level : Level1
*/
it
(
'
SUB_MEDIA_VIDEO_PLAYER_HTTP_FORMAT_MKV_0100
'
,
0
,
async
function
(
done
)
{
let
path
=
BASE_PATH
+
'
H264_AAC.mkv
'
;
await
playVideoSource
(
path
);
done
();
})
/* *
* @tc.number : SUB_MEDIA_VIDEO_PLAYER_HTTP_FORMAT_MKV_0200
* @tc.name : 002.H264_MP3
* @tc.desc : Http playback control test
* @tc.size : MediumTest
* @tc.type : Function test
* @tc.level : Level1
*/
it
(
'
SUB_MEDIA_VIDEO_PLAYER_HTTP_FORMAT_MKV_0200
'
,
0
,
async
function
(
done
)
{
let
path
=
BASE_PATH
+
'
H264_MP3.mkv
'
;
await
playVideoSource
(
path
);
done
();
})
/* *
* @tc.number : SUB_MEDIA_VIDEO_PLAYER_HTTP_FORMAT_MKV_0500
* @tc.name : 005.MPEG2_AAC
* @tc.desc : Http playback control test
* @tc.size : MediumTest
* @tc.type : Function test
* @tc.level : Level1
*/
it
(
'
SUB_MEDIA_VIDEO_PLAYER_HTTP_FORMAT_MKV_0500
'
,
0
,
async
function
(
done
)
{
let
path
=
BASE_PATH
+
'
MPEG2_AAC.mkv
'
;
await
playVideoSource
(
path
);
done
();
})
/* *
* @tc.number : SUB_MEDIA_VIDEO_PLAYER_HTTP_FORMAT_MKV_0600
* @tc.name : 006.MPEG2_MP3
* @tc.desc : Http playback control test
* @tc.size : MediumTest
* @tc.type : Function test
* @tc.level : Level1
*/
it
(
'
SUB_MEDIA_VIDEO_PLAYER_HTTP_FORMAT_MKV_0600
'
,
0
,
async
function
(
done
)
{
let
path
=
BASE_PATH
+
'
MPEG2_MP3.mkv
'
;
await
playVideoSource
(
path
);
done
();
})
/* *
* @tc.number : SUB_MEDIA_VIDEO_PLAYER_HTTP_FORMAT_MKV_0800
* @tc.name : 008.MPEG4_MP3
* @tc.desc : Http playback control test
* @tc.size : MediumTest
* @tc.type : Function test
* @tc.level : Level1
*/
it
(
'
SUB_MEDIA_VIDEO_PLAYER_HTTP_FORMAT_MKV_0800
'
,
0
,
async
function
(
done
)
{
let
path
=
BASE_PATH
+
'
MPEG4_MP3.mkv
'
;
await
playVideoSource
(
path
);
done
();
})
/* *
* @tc.number : SUB_MEDIA_VIDEO_PLAYER_HTTP_FORMAT_WEBM_0100
* @tc.name : 001.VP8_VORBIS
* @tc.desc : Http playback control test
* @tc.size : MediumTest
* @tc.type : Function test
* @tc.level : Level1
*/
it
(
'
SUB_MEDIA_VIDEO_PLAYER_HTTP_FORMAT_WEBM_0100
'
,
0
,
async
function
(
done
)
{
let
path
=
BASE_PATH
+
'
VP8_VORBIS.webm
'
;
await
playVideoSource
(
path
);
done
();
})
/* *
* @tc.number : SUB_MEDIA_AUDIO_PLAYER_HTTP_FORMAT_MP3_0100
* @tc.name : 001.MP3
* @tc.desc : Http playback control test
* @tc.size : MediumTest
* @tc.type : Function test
* @tc.level : Level1
*/
it
(
'
SUB_MEDIA_AUDIO_PLAYER_HTTP_FORMAT_MP3_0100
'
,
0
,
async
function
(
done
)
{
let
path
=
BASE_PATH
+
'
MP3.mp3
'
;
await
playAudioSource
(
path
,
done
);
})
/* *
* @tc.number : SUB_MEDIA_AUDIO_PLAYER_HTTP_FORMAT_AAC_0100
* @tc.name : 001.AAC
* @tc.desc : Http playback control test
* @tc.size : MediumTest
* @tc.type : Function test
* @tc.level : Level1
*/
it
(
'
SUB_MEDIA_AUDIO_PLAYER_HTTP_FORMAT_AAC_0100
'
,
0
,
async
function
(
done
)
{
let
path
=
BASE_PATH
+
'
AAC.aac
'
;
await
playAudioSource
(
path
,
done
);
})
/* *
* @tc.number : SUB_MEDIA_AUDIO_PLAYER_HTTP_FORMAT_WAV_0100
* @tc.name : 001.MP3
* @tc.desc : Http playback control test
* @tc.size : MediumTest
* @tc.type : Function test
* @tc.level : Level1
*/
it
(
'
SUB_MEDIA_AUDIO_PLAYER_HTTP_FORMAT_WAV_0100
'
,
0
,
async
function
(
done
)
{
let
path
=
BASE_PATH
+
'
PCM.wav
'
;
await
playAudioSource
(
path
,
done
);
})
/* *
* @tc.number : SUB_MEDIA_AUDIO_PLAYER_HTTP_FORMAT_FLAC_0100
* @tc.name : 001.FLAC
* @tc.desc : Http playback control test
* @tc.size : MediumTest
* @tc.type : Function test
* @tc.level : Level1
*/
it
(
'
SUB_MEDIA_AUDIO_PLAYER_HTTP_FORMAT_FLAC_0100
'
,
0
,
async
function
(
done
)
{
let
path
=
BASE_PATH
+
'
FLAC.flac
'
;
await
playAudioSource
(
path
,
done
);
})
/* *
* @tc.number : SUB_MEDIA_AUDIO_PLAYER_HTTP_FORMAT_M4A_0100
* @tc.name : 001.M4A
* @tc.desc : Http playback control test
* @tc.size : MediumTest
* @tc.type : Function test
* @tc.level : Level1
*/
it
(
'
SUB_MEDIA_AUDIO_PLAYER_HTTP_FORMAT_M4A_0100
'
,
0
,
async
function
(
done
)
{
let
path
=
BASE_PATH
+
'
AAC.m4a
'
;
await
playAudioSource
(
path
,
done
);
})
/* *
* @tc.number : SUB_MEDIA_AUDIO_PLAYER_HTTP_FORMAT_OGG_0100
* @tc.name : 001.OGG
* @tc.desc : Http playback control test
* @tc.size : MediumTest
* @tc.type : Function test
* @tc.level : Level1
*/
it
(
'
SUB_MEDIA_AUDIO_PLAYER_HTTP_FORMAT_OGG_0100
'
,
0
,
async
function
(
done
)
{
let
path
=
BASE_PATH
+
'
OGG.ogg
'
;
await
playAudioSource
(
path
,
done
);
})
})
multimedia/media/media_js_standard/httpPlayer/src/main/js/test/HttpPlayerFuncCallbackTest.test.js
0 → 100644
浏览文件 @
5588ef72
/*
* Copyright (C) 2022 Huawei Device Co., Ltd.
* 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
*
* http://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.
*/
import
media
from
'
@ohos.multimedia.media
'
import
router
from
'
@system.router
'
import
{
describe
,
beforeAll
,
beforeEach
,
afterEach
,
afterAll
,
it
,
expect
}
from
'
deccjsunit/index
'
describe
(
'
HttpPlayerFuncCallbackTest
'
,
function
()
{
const
HTTP_SOURCE
=
'
http://123.57.24.33:8000/MPEG2_AAC.mp4
'
const
PLAY_TIME
=
3000
;
const
SEEK_TIME
=
2100
;
const
WIDTH_VALUE
=
720
;
const
HEIGHT_VALUE
=
480
;
const
DURATION_TIME
=
10034
;
const
CREATE_EVENT
=
'
create
'
;
const
SETSURFACE_EVENT
=
'
setDisplaySurface
'
;
const
GETDESCRIPTION
=
'
getTrackDescription
'
;
const
PREPARE_EVENT
=
'
prepare
'
;
const
PLAY_EVENT
=
'
play
'
;
const
PAUSE_EVENT
=
'
pause
'
;
const
STOP_EVENT
=
'
stop
'
;
const
RESET_EVENT
=
'
reset
'
;
const
RELEASE_EVENT
=
'
release
'
;
const
SEEK_EVENT
=
'
seek
'
;
const
SEEK_MODE_EVENT
=
'
seekMode
'
;
const
SETVOLUME_EVENT
=
'
volume
'
;
const
SETSPEED_EVENT
=
'
speed
'
;
const
END_EVENT
=
'
end
'
;
const
VOLUME_VALUE
=
1
;
const
SPEED_VALUE
=
1
;
const
DELTA_TIME
=
1000
;
const
NEXT_FRAME_TIME
=
2200
;
const
PREV_FRAME_TIME
=
2000
;
let
surfaceID
=
''
;
let
events
=
require
(
'
events
'
);
let
eventEmitter
=
new
events
.
EventEmitter
();
beforeAll
(
function
()
{
console
.
info
(
'
beforeAll case
'
);
})
beforeEach
(
async
function
()
{
await
toNewPage
();
await
msleep
(
1000
).
then
(()
=>
{
},
failureCallback
).
catch
(
catchCallback
);
console
.
info
(
'
beforeEach case
'
);
})
afterEach
(
async
function
()
{
await
router
.
clear
();
console
.
info
(
'
afterEach case
'
);
})
afterAll
(
async
function
()
{
console
.
info
(
'
afterAll case
'
);
})
function
sleep
(
time
)
{
for
(
let
t
=
Date
.
now
();
Date
.
now
()
-
t
<=
time
;);
}
async
function
toNewPage
()
{
let
path
=
'
pages/surfaceTest/surfaceTest
'
;
let
options
=
{
uri
:
path
,
}
try
{
let
result
=
await
router
.
push
(
options
);
}
catch
{
console
.
info
(
'
case route failed
'
);
}
}
function
msleep
(
ms
)
{
return
new
Promise
((
resolve
)
=>
setTimeout
(
resolve
,
ms
));
}
function
failureCallback
(
error
)
{
expect
().
assertFail
();
console
.
info
(
`case error called,errMessage is
${
error
.
message
}
`
);
}
function
catchCallback
(
error
)
{
expect
().
assertFail
();
console
.
info
(
`case error called,errMessage is
${
error
.
message
}
`
);
}
function
printfError
(
error
,
done
)
{
expect
().
assertFail
();
console
.
info
(
`case error called,errMessage is
${
error
.
message
}
`
);
done
();
}
function
printfDescription
(
obj
)
{
let
description
=
""
;
for
(
let
i
in
obj
)
{
let
property
=
obj
[
i
];
console
.
info
(
'
case key is
'
+
i
);
console
.
info
(
'
case value is
'
+
property
);
description
+=
i
+
"
=
"
+
property
+
"
\n
"
;
}
}
function
toNextStep
(
videoPlayer
,
steps
,
done
)
{
if
(
steps
[
0
]
==
END_EVENT
)
{
console
.
info
(
'
case success!!
'
);
done
();
}
else
{
eventEmitter
.
emit
(
steps
[
0
],
videoPlayer
,
steps
,
done
);
}
}
function
setOnCallback
(
videoPlayer
)
{
videoPlayer
.
on
(
'
playbackCompleted
'
,
()
=>
{
console
.
info
(
'
case playbackCompleted success
'
);
});
videoPlayer
.
on
(
'
bufferingUpdate
'
,
(
infoType
,
value
)
=>
{
console
.
info
(
'
case bufferingUpdate success infoType is
'
+
infoType
);
console
.
info
(
'
case bufferingUpdate success value is
'
+
value
);
});
videoPlayer
.
on
(
'
startRenderFrame
'
,
()
=>
{
console
.
info
(
'
case startRenderFrame success
'
);
});
videoPlayer
.
on
(
'
videoSizeChanged
'
,
(
width
,
height
)
=>
{
expect
(
width
).
assertEqual
(
WIDTH_VALUE
);
expect
(
height
).
assertEqual
(
HEIGHT_VALUE
);
console
.
info
(
'
case videoSizeChanged success width is
'
+
width
);
console
.
info
(
'
case videoSizeChanged success height is
'
+
height
);
});
videoPlayer
.
on
(
'
error
'
,
(
error
)
=>
{
console
.
info
(
`case error called,errMessage is
${
error
.
message
}
`
);
});
}
eventEmitter
.
on
(
CREATE_EVENT
,
(
videoPlayer
,
steps
,
done
)
=>
{
steps
.
shift
();
media
.
createVideoPlayer
((
err
,
video
)
=>
{
if
(
typeof
(
video
)
!=
'
undefined
'
)
{
videoPlayer
=
video
;
setOnCallback
(
videoPlayer
);
expect
(
videoPlayer
.
state
).
assertEqual
(
'
idle
'
);
console
.
info
(
'
case createVideoPlayer success!!
'
);
toNextStep
(
videoPlayer
,
steps
,
done
);
}
else
{
printfError
(
err
,
done
);
}
});
});
eventEmitter
.
on
(
SETSURFACE_EVENT
,
(
videoPlayer
,
steps
,
done
)
=>
{
steps
.
shift
();
videoPlayer
.
url
=
HTTP_SOURCE
;
videoPlayer
.
setDisplaySurface
(
surfaceID
,
(
err
)
=>
{
if
(
typeof
(
err
)
==
'
undefined
'
)
{
expect
(
videoPlayer
.
state
).
assertEqual
(
'
idle
'
);
console
.
info
(
'
case setDisplaySurface success!!
'
);
toNextStep
(
videoPlayer
,
steps
,
done
);
}
else
{
printfError
(
err
,
done
);
}
})
});
eventEmitter
.
on
(
PREPARE_EVENT
,
(
videoPlayer
,
steps
,
done
)
=>
{
steps
.
shift
();
videoPlayer
.
url
=
HTTP_SOURCE
;
videoPlayer
.
prepare
((
err
)
=>
{
if
(
typeof
(
err
)
==
'
undefined
'
)
{
expect
(
videoPlayer
.
state
).
assertEqual
(
'
prepared
'
);
expect
(
videoPlayer
.
duration
).
assertEqual
(
DURATION_TIME
);
expect
(
videoPlayer
.
width
).
assertEqual
(
WIDTH_VALUE
);
expect
(
videoPlayer
.
height
).
assertEqual
(
HEIGHT_VALUE
);
console
.
info
(
'
case prepare success!!
'
);
toNextStep
(
videoPlayer
,
steps
,
done
);
}
else
{
printfError
(
err
,
done
);
}
});
});
eventEmitter
.
on
(
GETDESCRIPTION
,
(
videoPlayer
,
steps
,
done
)
=>
{
steps
.
shift
();
videoPlayer
.
getTrackDescription
((
err
,
arrlist
)
=>
{
if
(
typeof
(
err
)
==
'
undefined
'
)
{
for
(
let
i
=
0
;
i
<
arrlist
.
length
;
i
++
)
{
printfDescription
(
arrlist
[
i
]);
}
toNextStep
(
videoPlayer
,
steps
,
done
);
}
else
{
printfError
(
err
,
done
);
}
});
});
eventEmitter
.
on
(
PLAY_EVENT
,
(
videoPlayer
,
steps
,
done
)
=>
{
steps
.
shift
();
let
startTime
=
videoPlayer
.
currentTime
;
videoPlayer
.
play
((
err
)
=>
{
if
(
typeof
(
err
)
==
'
undefined
'
)
{
expect
(
videoPlayer
.
state
).
assertEqual
(
'
playing
'
);
console
.
info
(
'
case play success!!
'
);
sleep
(
PLAY_TIME
);
let
endTime
=
videoPlayer
.
currentTime
;
expect
(
endTime
-
startTime
).
assertClose
(
PLAY_TIME
,
DELTA_TIME
);
toNextStep
(
videoPlayer
,
steps
,
done
);
}
else
{
printfError
(
err
,
done
);
}
});
});
eventEmitter
.
on
(
PAUSE_EVENT
,
(
videoPlayer
,
steps
,
done
)
=>
{
steps
.
shift
();
videoPlayer
.
pause
((
err
)
=>
{
if
(
typeof
(
err
)
==
'
undefined
'
)
{
expect
(
videoPlayer
.
state
).
assertEqual
(
'
paused
'
);
console
.
info
(
'
case pause success!!
'
);
toNextStep
(
videoPlayer
,
steps
,
done
);
}
else
{
printfError
(
err
,
done
);
}
});
});
eventEmitter
.
on
(
STOP_EVENT
,
(
videoPlayer
,
steps
,
done
)
=>
{
steps
.
shift
();
videoPlayer
.
stop
((
err
)
=>
{
if
(
typeof
(
err
)
==
'
undefined
'
)
{
expect
(
videoPlayer
.
state
).
assertEqual
(
'
stopped
'
);
console
.
info
(
'
case stop success!!
'
);
toNextStep
(
videoPlayer
,
steps
,
done
);
}
else
{
printfError
(
err
,
done
);
}
});
});
eventEmitter
.
on
(
RESET_EVENT
,
(
videoPlayer
,
steps
,
done
)
=>
{
steps
.
shift
();
videoPlayer
.
reset
((
err
)
=>
{
if
(
typeof
(
err
)
==
'
undefined
'
)
{
expect
(
videoPlayer
.
state
).
assertEqual
(
'
idle
'
);
console
.
info
(
'
case reset success!!
'
);
toNextStep
(
videoPlayer
,
steps
,
done
);
}
else
{
printfError
(
err
,
done
);
}
});
});
eventEmitter
.
on
(
RELEASE_EVENT
,
(
videoPlayer
,
steps
,
done
)
=>
{
steps
.
shift
();
videoPlayer
.
release
((
err
)
=>
{
if
(
typeof
(
err
)
==
'
undefined
'
)
{
console
.
info
(
'
case release success!!
'
);
toNextStep
(
videoPlayer
,
steps
,
done
);
}
else
{
printfError
(
err
,
done
);
}
});
});
function
checkSeekTime
(
seekMode
,
seekTime
,
seekDoneTime
)
{
switch
(
seekMode
)
{
case
media
.
SeekMode
.
SEEK_NEXT_SYNC
:
if
(
seekTime
==
0
)
{
expect
(
seekDoneTime
).
assertEqual
(
0
);
}
else
if
(
seekTime
==
DURATION_TIME
)
{
expect
(
seekDoneTime
).
assertEqual
(
DURATION_TIME
);
}
else
{
expect
(
seekDoneTime
).
assertEqual
(
NEXT_FRAME_TIME
);
}
break
;
case
media
.
SeekMode
.
SEEK_PREV_SYNC
:
if
(
seekTime
==
0
)
{
expect
(
seekDoneTime
).
assertEqual
(
0
);
}
else
if
(
seekTime
==
DURATION_TIME
)
{
expect
(
seekDoneTime
).
assertEqual
(
10000
);
}
else
{
expect
(
seekDoneTime
).
assertEqual
(
PREV_FRAME_TIME
);
}
break
;
default
:
break
;
}
}
eventEmitter
.
on
(
SEEK_EVENT
,
(
videoPlayer
,
steps
,
done
)
=>
{
let
seekTime
=
steps
[
1
];
steps
.
shift
();
steps
.
shift
();
videoPlayer
.
seek
(
seekTime
,
(
err
,
seekDoneTime
)
=>
{
if
(
typeof
(
err
)
==
'
undefined
'
)
{
if
(
seekTime
>
DURATION_TIME
)
{
seekTime
=
DURATION_TIME
;
}
checkSeekTime
(
media
.
SeekMode
.
SEEK_PREV_SYNC
,
seekTime
,
seekDoneTime
);
console
.
info
(
'
case seek success and seekDoneTime is
'
+
seekDoneTime
);
toNextStep
(
videoPlayer
,
steps
,
done
);
}
else
{
printfError
(
err
,
done
);
}
});
});
eventEmitter
.
on
(
SEEK_MODE_EVENT
,
(
videoPlayer
,
steps
,
done
)
=>
{
let
seekTime
=
steps
[
1
];
let
seekMode
=
steps
[
2
];
steps
.
shift
();
steps
.
shift
();
steps
.
shift
();
videoPlayer
.
seek
(
seekTime
,
seekMode
,
(
err
,
seekDoneTime
)
=>
{
if
(
typeof
(
err
)
==
'
undefined
'
)
{
if
(
seekTime
>
DURATION_TIME
)
{
seekTime
=
DURATION_TIME
;
}
checkSeekTime
(
seekMode
,
seekTime
,
seekDoneTime
);
console
.
info
(
'
case seek success and seekDoneTime is
'
+
seekDoneTime
);
toNextStep
(
videoPlayer
,
steps
,
done
);
}
else
{
printfError
(
err
,
done
);
}
});
});
eventEmitter
.
on
(
SETVOLUME_EVENT
,
(
videoPlayer
,
steps
,
done
)
=>
{
let
volumeValue
=
steps
[
1
];
steps
.
shift
();
steps
.
shift
();
videoPlayer
.
setVolume
(
volumeValue
,
(
err
)
=>
{
if
(
typeof
(
err
)
==
'
undefined
'
)
{
console
.
info
(
'
case setVolume success
'
);
toNextStep
(
videoPlayer
,
steps
,
done
);
}
else
{
printfError
(
err
,
done
);
}
});
});
function
checkSpeedTime
(
videoPlayer
,
speedValue
,
startTime
)
{
let
endTime
=
videoPlayer
.
currentTime
;
if
(
videoPlayer
.
state
==
'
playing
'
)
{
switch
(
speedValue
)
{
case
media
.
PlaybackSpeed
.
SPEED_FORWARD_0_75_X
:
expect
(
endTime
-
startTime
).
assertClose
(
0.75
*
1000
,
DELTA_TIME
);
break
;
case
media
.
PlaybackSpeed
.
SPEED_FORWARD_1_00_X
:
expect
(
endTime
-
startTime
).
assertClose
(
1000
,
DELTA_TIME
);
break
;
case
media
.
PlaybackSpeed
.
SPEED_FORWARD_1_25_X
:
expect
(
endTime
-
startTime
).
assertClose
(
1.25
*
1000
,
DELTA_TIME
);
break
;
case
media
.
PlaybackSpeed
.
SPEED_FORWARD_1_75_X
:
expect
(
endTime
-
startTime
).
assertClose
(
1.75
*
1000
,
DELTA_TIME
);
break
;
case
media
.
PlaybackSpeed
.
SPEED_FORWARD_2_00_X
:
expect
(
endTime
-
startTime
).
assertClose
(
2
*
1000
,
DELTA_TIME
);
break
;
}
}
else
{
console
.
info
(
'
case speed not in play
'
);
}
}
eventEmitter
.
on
(
SETSPEED_EVENT
,
(
videoPlayer
,
steps
,
done
)
=>
{
let
speedValue
=
steps
[
1
];
steps
.
shift
();
steps
.
shift
();
let
startTime
=
videoPlayer
.
currentTime
;
videoPlayer
.
setSpeed
(
speedValue
,
(
err
,
speedMode
)
=>
{
if
(
typeof
(
err
)
==
'
undefined
'
)
{
sleep
(
1000
);
expect
(
speedValue
).
assertEqual
(
speedMode
);
console
.
info
(
'
case setSpeed success and speedMode is
'
+
speedMode
);
checkSpeedTime
(
videoPlayer
,
speedValue
,
startTime
);
toNextStep
(
videoPlayer
,
steps
,
done
);
}
else
{
printfError
(
err
,
done
);
}
});
});
/* *
* @tc.number : SUB_MEDIA_VIDEO_PLAYER_HTTP_FUNCTION_CALLBACK_0100
* @tc.name : 001.play (callback)
* @tc.desc : Video playback control test
* @tc.size : MediumTest
* @tc.type : Function test
* @tc.level : Level0
*/
it
(
'
SUB_MEDIA_VIDEO_PLAYER_HTTP_FUNCTION_CALLBACK_0100
'
,
0
,
async
function
(
done
)
{
surfaceID
=
globalThis
.
value
;
console
.
info
(
'
case new surfaceID is
'
+
surfaceID
);
let
videoPlayer
=
null
;
let
mySteps
=
new
Array
(
CREATE_EVENT
,
SETSURFACE_EVENT
,
PREPARE_EVENT
,
PLAY_EVENT
,
RELEASE_EVENT
,
END_EVENT
);
eventEmitter
.
emit
(
mySteps
[
0
],
videoPlayer
,
mySteps
,
done
);
})
/* *
* @tc.number : SUB_MEDIA_VIDEO_PLAYER_HTTP_FUNCTION_CALLBACK_0200
* @tc.name : 002.pause (callback)
* @tc.desc : Video playback control test
* @tc.size : MediumTest
* @tc.type : Function test
* @tc.level : Level0
*/
it
(
'
SUB_MEDIA_VIDEO_PLAYER_HTTP_FUNCTION_CALLBACK_0200
'
,
0
,
async
function
(
done
)
{
surfaceID
=
globalThis
.
value
;
console
.
info
(
'
case new surfaceID is
'
+
surfaceID
);
let
videoPlayer
=
null
;
let
mySteps
=
new
Array
(
CREATE_EVENT
,
SETSURFACE_EVENT
,
PREPARE_EVENT
,
PLAY_EVENT
,
PAUSE_EVENT
,
RELEASE_EVENT
,
END_EVENT
);
eventEmitter
.
emit
(
mySteps
[
0
],
videoPlayer
,
mySteps
,
done
);
})
/* *
* @tc.number : SUB_MEDIA_VIDEO_PLAYER_HTTP_FUNCTION_CALLBACK_0300
* @tc.name : 003.pause->play (callback)
* @tc.desc : Video playback control test
* @tc.size : MediumTest
* @tc.type : Function test
* @tc.level : Level0
*/
it
(
'
SUB_MEDIA_VIDEO_PLAYER_HTTP_FUNCTION_CALLBACK_0300
'
,
0
,
async
function
(
done
)
{
surfaceID
=
globalThis
.
value
;
console
.
info
(
'
case new surfaceID is
'
+
surfaceID
);
let
videoPlayer
=
null
;
let
mySteps
=
new
Array
(
CREATE_EVENT
,
SETSURFACE_EVENT
,
PREPARE_EVENT
,
PLAY_EVENT
,
PAUSE_EVENT
,
PLAY_EVENT
,
RELEASE_EVENT
,
END_EVENT
);
eventEmitter
.
emit
(
mySteps
[
0
],
videoPlayer
,
mySteps
,
done
);
})
/* *
* @tc.number : SUB_MEDIA_VIDEO_PLAYER_HTTP_FUNCTION_CALLBACK_0400
* @tc.name : 004.stop (callback)
* @tc.desc : Video playback control test
* @tc.size : MediumTest
* @tc.type : Function test
* @tc.level : Level0
*/
it
(
'
SUB_MEDIA_VIDEO_PLAYER_HTTP_FUNCTION_CALLBACK_0400
'
,
0
,
async
function
(
done
)
{
surfaceID
=
globalThis
.
value
;
console
.
info
(
'
case new surfaceID is
'
+
surfaceID
);
let
videoPlayer
=
null
;
let
mySteps
=
new
Array
(
CREATE_EVENT
,
SETSURFACE_EVENT
,
PREPARE_EVENT
,
PLAY_EVENT
,
STOP_EVENT
,
RELEASE_EVENT
,
END_EVENT
);
eventEmitter
.
emit
(
mySteps
[
0
],
videoPlayer
,
mySteps
,
done
);
})
/* *
* @tc.number : SUB_MEDIA_VIDEO_PLAYER_HTTP_FUNCTION_CALLBACK_0500
* @tc.name : 005.reset (callback)
* @tc.desc : Video playback control test
* @tc.size : MediumTest
* @tc.type : Function test
* @tc.level : Level0
*/
it
(
'
SUB_MEDIA_VIDEO_PLAYER_HTTP_FUNCTION_CALLBACK_0500
'
,
0
,
async
function
(
done
)
{
surfaceID
=
globalThis
.
value
;
console
.
info
(
'
case new surfaceID is
'
+
surfaceID
);
let
videoPlayer
=
null
;
let
mySteps
=
new
Array
(
CREATE_EVENT
,
SETSURFACE_EVENT
,
PREPARE_EVENT
,
PLAY_EVENT
,
RESET_EVENT
,
RELEASE_EVENT
,
END_EVENT
);
eventEmitter
.
emit
(
mySteps
[
0
],
videoPlayer
,
mySteps
,
done
);
})
/* *
* @tc.number : SUB_MEDIA_VIDEO_PLAYER_HTTP_FUNCTION_CALLBACK_0600
* @tc.name : 006.seek (callback)
* @tc.desc : Video playback control test
* @tc.size : MediumTest
* @tc.type : Function test
* @tc.level : Level0
*/
it
(
'
SUB_MEDIA_VIDEO_PLAYER_HTTP_FUNCTION_CALLBACK_0600
'
,
0
,
async
function
(
done
)
{
surfaceID
=
globalThis
.
value
;
console
.
info
(
'
case new surfaceID is
'
+
surfaceID
);
let
videoPlayer
=
null
;
let
mySteps
=
new
Array
(
CREATE_EVENT
,
SETSURFACE_EVENT
,
PREPARE_EVENT
,
PLAY_EVENT
,
SEEK_EVENT
,
SEEK_TIME
,
RELEASE_EVENT
,
END_EVENT
);
eventEmitter
.
emit
(
mySteps
[
0
],
videoPlayer
,
mySteps
,
done
);
})
/* *
* @tc.number : SUB_MEDIA_VIDEO_PLAYER_HTTP_FUNCTION_CALLBACK_0700
* @tc.name : 007.seek mode(callback)
* @tc.desc : Video playback control test
* @tc.size : MediumTest
* @tc.type : Function test
* @tc.level : Level0
*/
it
(
'
SUB_MEDIA_VIDEO_PLAYER_HTTP_FUNCTION_CALLBACK_0700
'
,
0
,
async
function
(
done
)
{
surfaceID
=
globalThis
.
value
;
console
.
info
(
'
case new surfaceID is
'
+
surfaceID
);
let
videoPlayer
=
null
;
let
mySteps
=
new
Array
(
CREATE_EVENT
,
SETSURFACE_EVENT
,
PREPARE_EVENT
,
PLAY_EVENT
,
SEEK_MODE_EVENT
,
SEEK_TIME
,
media
.
SeekMode
.
SEEK_NEXT_SYNC
,
SEEK_MODE_EVENT
,
SEEK_TIME
,
media
.
SeekMode
.
SEEK_PREV_SYNC
,
RELEASE_EVENT
,
END_EVENT
);
eventEmitter
.
emit
(
mySteps
[
0
],
videoPlayer
,
mySteps
,
done
);
})
/* *
* @tc.number : SUB_MEDIA_VIDEO_PLAYER_HTTP_FUNCTION_CALLBACK_0800
* @tc.name : 008.setVolume (callback)
* @tc.desc : Video playback control test
* @tc.size : MediumTest
* @tc.type : Function test
* @tc.level : Level0
*/
it
(
'
SUB_MEDIA_VIDEO_PLAYER_HTTP_FUNCTION_CALLBACK_0800
'
,
0
,
async
function
(
done
)
{
surfaceID
=
globalThis
.
value
;
console
.
info
(
'
case new surfaceID is
'
+
surfaceID
);
let
videoPlayer
=
null
;
let
mySteps
=
new
Array
(
CREATE_EVENT
,
SETSURFACE_EVENT
,
PREPARE_EVENT
,
PLAY_EVENT
,
SETVOLUME_EVENT
,
VOLUME_VALUE
,
RELEASE_EVENT
,
END_EVENT
);
eventEmitter
.
emit
(
mySteps
[
0
],
videoPlayer
,
mySteps
,
done
);
})
/* *
* @tc.number : SUB_MEDIA_VIDEO_PLAYER_HTTP_FUNCTION_CALLBACK_0900
* @tc.name : 009.setSpeed (callback)
* @tc.desc : Video playback control test
* @tc.size : MediumTest
* @tc.type : Function test
* @tc.level : Level0
*/
it
(
'
SUB_MEDIA_VIDEO_PLAYER_HTTP_FUNCTION_CALLBACK_0900
'
,
0
,
async
function
(
done
)
{
surfaceID
=
globalThis
.
value
;
console
.
info
(
'
case new surfaceID is
'
+
surfaceID
);
let
videoPlayer
=
null
;
let
mySteps
=
new
Array
(
CREATE_EVENT
,
SETSURFACE_EVENT
,
PREPARE_EVENT
,
PLAY_EVENT
,
SETSPEED_EVENT
,
SPEED_VALUE
,
RELEASE_EVENT
,
END_EVENT
);
eventEmitter
.
emit
(
mySteps
[
0
],
videoPlayer
,
mySteps
,
done
);
})
/* *
* @tc.number : SUB_MEDIA_VIDEO_PLAYER_HTTP_FUNCTION_CALLBACK_1000
* @tc.name : 010.getTrackDescription (callback)
* @tc.desc : Video playback control test
* @tc.size : MediumTest
* @tc.type : Function test
* @tc.level : Level0
*/
it
(
'
SUB_MEDIA_VIDEO_PLAYER_HTTP_FUNCTION_CALLBACK_1000
'
,
0
,
async
function
(
done
)
{
surfaceID
=
globalThis
.
value
;
console
.
info
(
'
case new surfaceID is
'
+
surfaceID
);
let
videoPlayer
=
null
;
let
mySteps
=
new
Array
(
CREATE_EVENT
,
SETSURFACE_EVENT
,
PREPARE_EVENT
,
GETDESCRIPTION
,
RELEASE_EVENT
,
END_EVENT
);
eventEmitter
.
emit
(
mySteps
[
0
],
videoPlayer
,
mySteps
,
done
);
})
/* *
* @tc.number : SUB_MEDIA_VIDEO_PLAYER_HTTP_FUNCTION_CALLBACK_1100
* @tc.name : 011.Loop true (callback)
* @tc.desc : Video playback control test
* @tc.size : MediumTest
* @tc.type : Function test
* @tc.level : Level0
*/
it
(
'
SUB_MEDIA_VIDEO_PLAYER_HTTP_FUNCTION_CALLBACK_1100
'
,
0
,
async
function
(
done
)
{
surfaceID
=
globalThis
.
value
;
console
.
info
(
'
case new surfaceID is
'
+
surfaceID
);
let
videoPlayer
=
null
;
let
mySteps
=
new
Array
(
CREATE_EVENT
,
SETSURFACE_EVENT
,
PREPARE_EVENT
,
PLAY_EVENT
,
STOP_EVENT
,
RELEASE_EVENT
,
END_EVENT
);
eventEmitter
.
emit
(
mySteps
[
0
],
videoPlayer
,
mySteps
,
done
);
})
})
multimedia/media/media_js_standard/httpPlayer/src/main/js/test/HttpPlayerFuncPromiseTest.test.js
0 → 100644
浏览文件 @
5588ef72
/*
* Copyright (C) 2022 Huawei Device Co., Ltd.
* 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
*
* http://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.
*/
import
media
from
'
@ohos.multimedia.media
'
import
router
from
'
@system.router
'
import
{
describe
,
beforeAll
,
beforeEach
,
afterEach
,
afterAll
,
it
,
expect
}
from
'
deccjsunit/index
'
describe
(
'
HttpPlayerFuncPromiseTest
'
,
function
()
{
const
HTTP_SOURCE
=
'
http://123.57.24.33:8000/MPEG2_AAC.mp4
'
;
const
PLAY_TIME
=
3000
;
const
SEEK_TIME
=
2100
;
const
WIDTH_VALUE
=
720
;
const
HEIGHT_VALUE
=
480
;
const
DURATION_TIME
=
10034
;
const
DELTA_TIME
=
1000
;
const
NEXT_FRAME_TIME
=
2200
;
const
PREV_FRAME_TIME
=
2000
;
let
surfaceID
=
''
;
beforeAll
(
function
()
{
console
.
info
(
'
beforeAll case
'
);
})
beforeEach
(
async
function
()
{
await
toNewPage
();
await
msleep
(
1000
).
then
(()
=>
{
},
failureCallback
).
catch
(
catchCallback
);
console
.
info
(
'
beforeEach case
'
);
})
afterEach
(
async
function
()
{
await
router
.
clear
();
console
.
info
(
'
afterEach case
'
);
})
afterAll
(
async
function
()
{
console
.
info
(
'
afterAll case
'
);
})
function
sleep
(
time
)
{
for
(
let
t
=
Date
.
now
();
Date
.
now
()
-
t
<=
time
;);
}
function
msleep
(
ms
)
{
return
new
Promise
((
resolve
)
=>
setTimeout
(
resolve
,
ms
));
}
function
failureCallback
(
error
)
{
expect
().
assertFail
();
console
.
info
(
`case error called,errMessage is
${
error
.
message
}
`
);
}
function
catchCallback
(
error
)
{
expect
().
assertFail
();
console
.
info
(
`case error called,errMessage is
${
error
.
message
}
`
);
}
async
function
toNewPage
()
{
let
path
=
'
pages/surfaceTest/surfaceTest
'
;
let
options
=
{
uri
:
path
,
}
try
{
let
result
=
await
router
.
push
(
options
);
}
catch
{
console
.
info
(
'
case route failed
'
);
}
}
function
printfDescription
(
obj
)
{
let
description
=
""
;
for
(
let
i
in
obj
)
{
let
property
=
obj
[
i
];
console
.
info
(
'
case key is
'
+
i
);
console
.
info
(
'
case value is
'
+
property
);
description
+=
i
+
"
=
"
+
property
+
"
\n
"
;
}
}
function
checkSpeedTime
(
videoPlayer
,
speedValue
,
startTime
)
{
let
newTime
=
videoPlayer
.
currentTime
;
if
(
videoPlayer
.
state
==
'
playing
'
)
{
switch
(
speedValue
)
{
case
media
.
PlaybackSpeed
.
SPEED_FORWARD_0_75_X
:
expect
(
newTime
-
startTime
).
assertClose
(
0.75
*
1000
,
DELTA_TIME
);
break
;
case
media
.
PlaybackSpeed
.
SPEED_FORWARD_1_00_X
:
expect
(
newTime
-
startTime
).
assertClose
(
1000
,
DELTA_TIME
);
break
;
case
media
.
PlaybackSpeed
.
SPEED_FORWARD_1_25_X
:
expect
(
newTime
-
startTime
).
assertClose
(
1.25
*
1000
,
DELTA_TIME
);
break
;
case
media
.
PlaybackSpeed
.
SPEED_FORWARD_1_75_X
:
expect
(
newTime
-
startTime
).
assertClose
(
1.75
*
1000
,
DELTA_TIME
);
break
;
case
media
.
PlaybackSpeed
.
SPEED_FORWARD_2_00_X
:
expect
(
newTime
-
startTime
).
assertClose
(
2
*
1000
,
DELTA_TIME
);
break
;
}
}
else
{
console
.
info
(
'
case speed not in play
'
);
}
}
/* *
* @tc.number : SUB_MEDIA_VIDEO_PLAYER_HTTP_FUNCTION_PROMISE_0100
* @tc.name : 001.play (promise)
* @tc.desc : Video playback control test
* @tc.size : MediumTest
* @tc.type : Function test
* @tc.level : Level0
*/
it
(
'
SUB_MEDIA_VIDEO_PLAYER_HTTP_FUNCTION_PROMISE_0100
'
,
0
,
async
function
(
done
)
{
surfaceID
=
globalThis
.
value
;
console
.
info
(
'
case new surfaceID is
'
+
surfaceID
);
let
videoPlayer
=
null
;
await
media
.
createVideoPlayer
().
then
((
video
)
=>
{
if
(
typeof
(
video
)
!=
'
undefined
'
)
{
console
.
info
(
'
case createVideoPlayer success
'
);
videoPlayer
=
video
;
expect
(
videoPlayer
.
state
).
assertEqual
(
'
idle
'
);
}
else
{
console
.
info
(
'
case createVideoPlayer is failed
'
);
expect
().
assertFail
();
}
},
failureCallback
).
catch
(
catchCallback
);
videoPlayer
.
url
=
HTTP_SOURCE
;
await
videoPlayer
.
setDisplaySurface
(
surfaceID
).
then
(()
=>
{
console
.
info
(
'
case setDisplaySurface success
'
);
expect
(
videoPlayer
.
state
).
assertEqual
(
'
idle
'
);
},
failureCallback
).
catch
(
catchCallback
);
await
videoPlayer
.
prepare
().
then
(()
=>
{
console
.
info
(
'
case prepare called!!
'
);
expect
(
videoPlayer
.
state
).
assertEqual
(
'
prepared
'
);
expect
(
videoPlayer
.
duration
).
assertEqual
(
DURATION_TIME
);
expect
(
videoPlayer
.
width
).
assertEqual
(
WIDTH_VALUE
);
expect
(
videoPlayer
.
height
).
assertEqual
(
HEIGHT_VALUE
);
},
failureCallback
).
catch
(
catchCallback
);
let
startTime
=
videoPlayer
.
currentTime
;
await
videoPlayer
.
play
().
then
(()
=>
{
console
.
info
(
'
case play called!!
'
);
sleep
(
PLAY_TIME
);
expect
(
videoPlayer
.
state
).
assertEqual
(
'
playing
'
);
},
failureCallback
).
catch
(
catchCallback
);
let
endTime
=
videoPlayer
.
currentTime
;
expect
(
endTime
-
startTime
).
assertClose
(
PLAY_TIME
,
DELTA_TIME
);
await
videoPlayer
.
release
().
then
(()
=>
{
console
.
info
(
'
case release called!!
'
);
},
failureCallback
).
catch
(
catchCallback
);
done
();
})
/* *
* @tc.number : SUB_MEDIA_VIDEO_PLAYER_HTTP_FUNCTION_PROMISE_0200
* @tc.name : 002.pause (promise)
* @tc.desc : Video playback control test
* @tc.size : MediumTest
* @tc.type : Function test
* @tc.level : Level0
*/
it
(
'
SUB_MEDIA_VIDEO_PLAYER_HTTP_FUNCTION_PROMISE_0200
'
,
0
,
async
function
(
done
)
{
surfaceID
=
globalThis
.
value
;
console
.
info
(
'
case new surfaceID is
'
+
surfaceID
);
let
videoPlayer
=
null
;
await
media
.
createVideoPlayer
().
then
((
video
)
=>
{
if
(
typeof
(
video
)
!=
'
undefined
'
)
{
videoPlayer
=
video
;
expect
(
videoPlayer
.
state
).
assertEqual
(
'
idle
'
);
}
else
{
console
.
info
(
'
case createVideoPlayer is failed
'
);
expect
().
assertFail
();
}
},
failureCallback
).
catch
(
catchCallback
);
videoPlayer
.
url
=
HTTP_SOURCE
;
await
videoPlayer
.
setDisplaySurface
(
surfaceID
).
then
(()
=>
{
console
.
info
(
'
case setDisplaySurface success
'
);
expect
(
videoPlayer
.
state
).
assertEqual
(
'
idle
'
);
},
failureCallback
).
catch
(
catchCallback
);
await
videoPlayer
.
prepare
().
then
(()
=>
{
console
.
info
(
'
case prepare called!!
'
);
expect
(
videoPlayer
.
state
).
assertEqual
(
'
prepared
'
);
expect
(
videoPlayer
.
duration
).
assertEqual
(
DURATION_TIME
);
expect
(
videoPlayer
.
width
).
assertEqual
(
WIDTH_VALUE
);
expect
(
videoPlayer
.
height
).
assertEqual
(
HEIGHT_VALUE
);
},
failureCallback
).
catch
(
catchCallback
);
let
startTime
=
videoPlayer
.
currentTime
;
await
videoPlayer
.
play
().
then
(()
=>
{
console
.
info
(
'
case play called!!
'
);
sleep
(
PLAY_TIME
);
expect
(
videoPlayer
.
state
).
assertEqual
(
'
playing
'
);
},
failureCallback
).
catch
(
catchCallback
);
let
endTime
=
videoPlayer
.
currentTime
;
expect
(
endTime
-
startTime
).
assertClose
(
PLAY_TIME
,
DELTA_TIME
);
await
videoPlayer
.
pause
().
then
(()
=>
{
expect
(
videoPlayer
.
state
).
assertEqual
(
'
paused
'
);
console
.
info
(
'
case pause called!!
'
);
},
failureCallback
).
catch
(
catchCallback
);
await
videoPlayer
.
release
().
then
(()
=>
{
console
.
info
(
'
case release called!!
'
);
},
failureCallback
).
catch
(
catchCallback
);
done
();
})
/* *
* @tc.number : SUB_MEDIA_VIDEO_PLAYER_HTTP_FUNCTION_PROMISE_0300
* @tc.name : 003.pause->play (promise)
* @tc.desc : Video playback control test
* @tc.size : MediumTest
* @tc.type : Function test
* @tc.level : Level0
*/
it
(
'
SUB_MEDIA_VIDEO_PLAYER_HTTP_FUNCTION_PROMISE_0300
'
,
0
,
async
function
(
done
)
{
surfaceID
=
globalThis
.
value
;
console
.
info
(
'
case new surfaceID is
'
+
surfaceID
);
let
videoPlayer
=
null
;
await
media
.
createVideoPlayer
().
then
((
video
)
=>
{
if
(
typeof
(
video
)
!=
'
undefined
'
)
{
videoPlayer
=
video
;
expect
(
videoPlayer
.
state
).
assertEqual
(
'
idle
'
);
}
else
{
console
.
info
(
'
case createVideoPlayer is failed
'
);
expect
().
assertFail
();
}
},
failureCallback
).
catch
(
catchCallback
);
videoPlayer
.
url
=
HTTP_SOURCE
;
await
videoPlayer
.
setDisplaySurface
(
surfaceID
).
then
(()
=>
{
expect
(
videoPlayer
.
state
).
assertEqual
(
'
idle
'
);
console
.
info
(
'
case setDisplaySurface success
'
);
},
failureCallback
).
catch
(
catchCallback
);
await
videoPlayer
.
prepare
().
then
(()
=>
{
expect
(
videoPlayer
.
state
).
assertEqual
(
'
prepared
'
);
expect
(
videoPlayer
.
duration
).
assertEqual
(
DURATION_TIME
);
expect
(
videoPlayer
.
width
).
assertEqual
(
WIDTH_VALUE
);
expect
(
videoPlayer
.
height
).
assertEqual
(
HEIGHT_VALUE
);
console
.
info
(
'
case prepare called!!
'
);
},
failureCallback
).
catch
(
catchCallback
);
let
startTime
=
videoPlayer
.
currentTime
;
await
videoPlayer
.
play
().
then
(()
=>
{
console
.
info
(
'
case play called!!
'
);
sleep
(
PLAY_TIME
);
expect
(
videoPlayer
.
state
).
assertEqual
(
'
playing
'
);
},
failureCallback
).
catch
(
catchCallback
);
let
endTime
=
videoPlayer
.
currentTime
;
expect
(
endTime
-
startTime
).
assertClose
(
PLAY_TIME
,
DELTA_TIME
);
await
videoPlayer
.
pause
().
then
(()
=>
{
expect
(
videoPlayer
.
state
).
assertEqual
(
'
paused
'
);
console
.
info
(
'
case pause called!!
'
);
},
failureCallback
).
catch
(
catchCallback
);
startTime
=
videoPlayer
.
currentTime
;
await
videoPlayer
.
play
().
then
(()
=>
{
expect
(
videoPlayer
.
state
).
assertEqual
(
'
playing
'
);
console
.
info
(
'
case play called!!
'
);
sleep
(
PLAY_TIME
);
},
failureCallback
).
catch
(
catchCallback
);
endTime
=
videoPlayer
.
currentTime
;
expect
(
endTime
-
startTime
).
assertClose
(
PLAY_TIME
,
DELTA_TIME
);
await
videoPlayer
.
release
().
then
(()
=>
{
console
.
info
(
'
case release called!!
'
);
},
failureCallback
).
catch
(
catchCallback
);
done
();
})
/* *
* @tc.number : SUB_MEDIA_VIDEO_PLAYER_HTTP_FUNCTION_PROMISE_0400
* @tc.name : 004.stop (promise)
* @tc.desc : Video playback control test
* @tc.size : MediumTest
* @tc.type : Function test
* @tc.level : Level0
*/
it
(
'
SUB_MEDIA_VIDEO_PLAYER_HTTP_FUNCTION_PROMISE_0400
'
,
0
,
async
function
(
done
)
{
surfaceID
=
globalThis
.
value
;
console
.
info
(
'
case new surfaceID is
'
+
surfaceID
);
let
videoPlayer
=
null
;
await
media
.
createVideoPlayer
().
then
((
video
)
=>
{
if
(
typeof
(
video
)
!=
'
undefined
'
)
{
videoPlayer
=
video
;
expect
(
videoPlayer
.
state
).
assertEqual
(
'
idle
'
);
}
else
{
console
.
info
(
'
case createVideoPlayer is failed
'
);
expect
().
assertFail
();
}
},
failureCallback
).
catch
(
catchCallback
);
videoPlayer
.
url
=
HTTP_SOURCE
;
await
videoPlayer
.
setDisplaySurface
(
surfaceID
).
then
(()
=>
{
expect
(
videoPlayer
.
state
).
assertEqual
(
'
idle
'
);
console
.
info
(
'
case setDisplaySurface success
'
);
},
failureCallback
).
catch
(
catchCallback
);
await
videoPlayer
.
prepare
().
then
(()
=>
{
expect
(
videoPlayer
.
state
).
assertEqual
(
'
prepared
'
);
expect
(
videoPlayer
.
duration
).
assertEqual
(
DURATION_TIME
);
expect
(
videoPlayer
.
width
).
assertEqual
(
WIDTH_VALUE
);
expect
(
videoPlayer
.
height
).
assertEqual
(
HEIGHT_VALUE
);
console
.
info
(
'
case prepare called!!
'
);
},
failureCallback
).
catch
(
catchCallback
);
let
startTime
=
videoPlayer
.
currentTime
;
await
videoPlayer
.
play
().
then
(()
=>
{
console
.
info
(
'
case play called!!
'
);
sleep
(
PLAY_TIME
);
expect
(
videoPlayer
.
state
).
assertEqual
(
'
playing
'
);
},
failureCallback
).
catch
(
catchCallback
);
let
endTime
=
videoPlayer
.
currentTime
;
expect
(
endTime
-
startTime
).
assertClose
(
PLAY_TIME
,
DELTA_TIME
);
await
videoPlayer
.
stop
().
then
(()
=>
{
expect
(
videoPlayer
.
state
).
assertEqual
(
'
stopped
'
);
console
.
info
(
'
case stop called!!
'
);
},
failureCallback
).
catch
(
catchCallback
);
await
videoPlayer
.
release
().
then
(()
=>
{
console
.
info
(
'
case release called!!
'
);
},
failureCallback
).
catch
(
catchCallback
);
done
();
})
/* *
* @tc.number : SUB_MEDIA_VIDEO_PLAYER_HTTP_FUNCTION_PROMISE_0500
* @tc.name : 005.reset (promise)
* @tc.desc : Video playback control test
* @tc.size : MediumTest
* @tc.type : Function test
* @tc.level : Level0
*/
it
(
'
SUB_MEDIA_VIDEO_PLAYER_HTTP_FUNCTION_PROMISE_0500
'
,
0
,
async
function
(
done
)
{
surfaceID
=
globalThis
.
value
;
console
.
info
(
'
case new surfaceID is
'
+
surfaceID
);
let
videoPlayer
=
null
;
await
media
.
createVideoPlayer
().
then
((
video
)
=>
{
if
(
typeof
(
video
)
!=
'
undefined
'
)
{
videoPlayer
=
video
;
expect
(
videoPlayer
.
state
).
assertEqual
(
'
idle
'
);
}
else
{
console
.
info
(
'
case createVideoPlayer is failed
'
);
expect
().
assertFail
();
}
},
failureCallback
).
catch
(
catchCallback
);
videoPlayer
.
url
=
HTTP_SOURCE
;
await
videoPlayer
.
setDisplaySurface
(
surfaceID
).
then
(()
=>
{
expect
(
videoPlayer
.
state
).
assertEqual
(
'
idle
'
);
console
.
info
(
'
case setDisplaySurface success
'
);
},
failureCallback
).
catch
(
catchCallback
);
await
videoPlayer
.
prepare
().
then
(()
=>
{
expect
(
videoPlayer
.
state
).
assertEqual
(
'
prepared
'
);
expect
(
videoPlayer
.
duration
).
assertEqual
(
DURATION_TIME
);
expect
(
videoPlayer
.
width
).
assertEqual
(
WIDTH_VALUE
);
expect
(
videoPlayer
.
height
).
assertEqual
(
HEIGHT_VALUE
);
console
.
info
(
'
case prepare called!!
'
);
},
failureCallback
).
catch
(
catchCallback
);
let
startTime
=
videoPlayer
.
currentTime
;
await
videoPlayer
.
play
().
then
(()
=>
{
console
.
info
(
'
case play called!!
'
);
sleep
(
PLAY_TIME
);
expect
(
videoPlayer
.
state
).
assertEqual
(
'
playing
'
);
},
failureCallback
).
catch
(
catchCallback
);
let
endTime
=
videoPlayer
.
currentTime
;
expect
(
endTime
-
startTime
).
assertClose
(
PLAY_TIME
,
DELTA_TIME
);
await
videoPlayer
.
reset
().
then
(()
=>
{
expect
(
videoPlayer
.
state
).
assertEqual
(
'
idle
'
);
console
.
info
(
'
case reset called!!
'
);
},
failureCallback
).
catch
(
catchCallback
);
await
videoPlayer
.
release
().
then
(()
=>
{
console
.
info
(
'
case release called!!
'
);
},
failureCallback
).
catch
(
catchCallback
);
done
();
})
/* *
* @tc.number : SUB_MEDIA_VIDEO_PLAYER_HTTP_FUNCTION_PROMISE_0600
* @tc.name : 006.seek (promise)
* @tc.desc : Video playback control test
* @tc.size : MediumTest
* @tc.type : Function test
* @tc.level : Level0
*/
it
(
'
SUB_MEDIA_VIDEO_PLAYER_HTTP_FUNCTION_PROMISE_0600
'
,
0
,
async
function
(
done
)
{
surfaceID
=
globalThis
.
value
;
console
.
info
(
'
case new surfaceID is
'
+
surfaceID
);
let
videoPlayer
=
null
;
await
media
.
createVideoPlayer
().
then
((
video
)
=>
{
if
(
typeof
(
video
)
!=
'
undefined
'
)
{
videoPlayer
=
video
;
expect
(
videoPlayer
.
state
).
assertEqual
(
'
idle
'
);
}
else
{
console
.
info
(
'
case createVideoPlayer is failed
'
);
expect
().
assertFail
();
}
},
failureCallback
).
catch
(
catchCallback
);
videoPlayer
.
url
=
HTTP_SOURCE
;
await
videoPlayer
.
setDisplaySurface
(
surfaceID
).
then
(()
=>
{
expect
(
videoPlayer
.
state
).
assertEqual
(
'
idle
'
);
console
.
info
(
'
case setDisplaySurface success
'
);
},
failureCallback
).
catch
(
catchCallback
);
await
videoPlayer
.
prepare
().
then
(()
=>
{
expect
(
videoPlayer
.
state
).
assertEqual
(
'
prepared
'
);
expect
(
videoPlayer
.
duration
).
assertEqual
(
DURATION_TIME
);
expect
(
videoPlayer
.
width
).
assertEqual
(
WIDTH_VALUE
);
expect
(
videoPlayer
.
height
).
assertEqual
(
HEIGHT_VALUE
);
console
.
info
(
'
case prepare called!!
'
);
},
failureCallback
).
catch
(
catchCallback
);
let
startTime
=
videoPlayer
.
currentTime
;
await
videoPlayer
.
play
().
then
(()
=>
{
console
.
info
(
'
case play called!!
'
);
sleep
(
PLAY_TIME
);
expect
(
videoPlayer
.
state
).
assertEqual
(
'
playing
'
);
},
failureCallback
).
catch
(
catchCallback
);
let
endTime
=
videoPlayer
.
currentTime
;
expect
(
endTime
-
startTime
).
assertClose
(
PLAY_TIME
,
DELTA_TIME
);
await
videoPlayer
.
seek
(
SEEK_TIME
).
then
((
seekDoneTime
)
=>
{
expect
(
videoPlayer
.
state
).
assertEqual
(
'
playing
'
);
expect
(
seekDoneTime
).
assertEqual
(
PREV_FRAME_TIME
);
console
.
info
(
'
case seek called and seekDoneTime is
'
+
seekDoneTime
);
},
failureCallback
).
catch
(
catchCallback
);
await
videoPlayer
.
release
().
then
(()
=>
{
console
.
info
(
'
case release called!!
'
);
},
failureCallback
).
catch
(
catchCallback
);
done
();
})
/* *
* @tc.number : SUB_MEDIA_VIDEO_PLAYER_HTTP_FUNCTION_PROMISE_0700
* @tc.name : 007.seek CLOSEST(promise)
* @tc.desc : Video playback control test
* @tc.size : MediumTest
* @tc.type : Function test
* @tc.level : Level0
*/
it
(
'
SUB_MEDIA_VIDEO_PLAYER_HTTP_FUNCTION_PROMISE_0700
'
,
0
,
async
function
(
done
)
{
surfaceID
=
globalThis
.
value
;
console
.
info
(
'
case new surfaceID is
'
+
surfaceID
);
let
videoPlayer
=
null
;
await
media
.
createVideoPlayer
().
then
((
video
)
=>
{
if
(
typeof
(
video
)
!=
'
undefined
'
)
{
videoPlayer
=
video
;
expect
(
videoPlayer
.
state
).
assertEqual
(
'
idle
'
);
}
else
{
console
.
info
(
'
case createVideoPlayer is failed
'
);
expect
().
assertFail
();
}
},
failureCallback
).
catch
(
catchCallback
);
videoPlayer
.
url
=
HTTP_SOURCE
;
await
videoPlayer
.
setDisplaySurface
(
surfaceID
).
then
(()
=>
{
expect
(
videoPlayer
.
state
).
assertEqual
(
'
idle
'
);
console
.
info
(
'
case setDisplaySurface success
'
);
},
failureCallback
).
catch
(
catchCallback
);
await
videoPlayer
.
prepare
().
then
(()
=>
{
expect
(
videoPlayer
.
state
).
assertEqual
(
'
prepared
'
);
expect
(
videoPlayer
.
duration
).
assertEqual
(
DURATION_TIME
);
expect
(
videoPlayer
.
width
).
assertEqual
(
WIDTH_VALUE
);
expect
(
videoPlayer
.
height
).
assertEqual
(
HEIGHT_VALUE
);
console
.
info
(
'
case prepare called!!
'
);
},
failureCallback
).
catch
(
catchCallback
);
let
startTime
=
videoPlayer
.
currentTime
;
await
videoPlayer
.
play
().
then
(()
=>
{
console
.
info
(
'
case play called!!
'
);
sleep
(
PLAY_TIME
);
expect
(
videoPlayer
.
state
).
assertEqual
(
'
playing
'
);
},
failureCallback
).
catch
(
catchCallback
);
let
endTime
=
videoPlayer
.
currentTime
;
expect
(
endTime
-
startTime
).
assertClose
(
PLAY_TIME
,
DELTA_TIME
);
await
videoPlayer
.
seek
(
SEEK_TIME
,
media
.
SeekMode
.
SEEK_NEXT_SYNC
).
then
((
seekDoneTime
)
=>
{
expect
(
videoPlayer
.
state
).
assertEqual
(
'
playing
'
);
expect
(
seekDoneTime
).
assertEqual
(
NEXT_FRAME_TIME
);
console
.
info
(
'
case seek called and seekDoneTime is
'
+
seekDoneTime
);
},
failureCallback
).
catch
(
catchCallback
);
await
videoPlayer
.
seek
(
SEEK_TIME
,
media
.
SeekMode
.
SEEK_PREV_SYNC
).
then
((
seekDoneTime
)
=>
{
expect
(
videoPlayer
.
state
).
assertEqual
(
'
playing
'
);
expect
(
seekDoneTime
).
assertEqual
(
PREV_FRAME_TIME
);
console
.
info
(
'
case seek called and seekDoneTime is
'
+
seekDoneTime
);
},
failureCallback
).
catch
(
catchCallback
);
await
videoPlayer
.
seek
(
PREV_FRAME_TIME
-
100
,
media
.
SeekMode
.
SEEK_PREV_SYNC
).
then
((
seekDoneTime
)
=>
{
expect
(
videoPlayer
.
state
).
assertEqual
(
'
playing
'
);
expect
(
seekDoneTime
).
assertEqual
(
1800
);
console
.
info
(
'
case seek called and seekDoneTime is
'
+
seekDoneTime
);
},
failureCallback
).
catch
(
catchCallback
);
await
videoPlayer
.
seek
(
PREV_FRAME_TIME
+
100
,
media
.
SeekMode
.
SEEK_PREV_SYNC
).
then
((
seekDoneTime
)
=>
{
expect
(
videoPlayer
.
state
).
assertEqual
(
'
playing
'
);
expect
(
seekDoneTime
).
assertEqual
(
PREV_FRAME_TIME
);
console
.
info
(
'
case seek called and seekDoneTime is
'
+
seekDoneTime
);
},
failureCallback
).
catch
(
catchCallback
);
await
videoPlayer
.
seek
(
NEXT_FRAME_TIME
-
100
,
media
.
SeekMode
.
SEEK_NEXT_SYNC
).
then
((
seekDoneTime
)
=>
{
expect
(
videoPlayer
.
state
).
assertEqual
(
'
playing
'
);
expect
(
seekDoneTime
).
assertEqual
(
NEXT_FRAME_TIME
);
console
.
info
(
'
case seek called and seekDoneTime is
'
+
seekDoneTime
);
},
failureCallback
).
catch
(
catchCallback
);
await
videoPlayer
.
seek
(
NEXT_FRAME_TIME
+
100
,
media
.
SeekMode
.
SEEK_NEXT_SYNC
).
then
((
seekDoneTime
)
=>
{
expect
(
videoPlayer
.
state
).
assertEqual
(
'
playing
'
);
expect
(
seekDoneTime
).
assertEqual
(
2400
);
console
.
info
(
'
case seek called and seekDoneTime is
'
+
seekDoneTime
);
},
failureCallback
).
catch
(
catchCallback
);
await
videoPlayer
.
release
().
then
(()
=>
{
console
.
info
(
'
case release called!!
'
);
},
failureCallback
).
catch
(
catchCallback
);
done
();
})
/* *
* @tc.number : SUB_MEDIA_VIDEO_PLAYER_HTTP_FUNCTION_PROMISE_0800
* @tc.name : 008.setVolume (promise)
* @tc.desc : Video playback control test
* @tc.size : MediumTest
* @tc.type : Function test
* @tc.level : Level0
*/
it
(
'
SUB_MEDIA_VIDEO_PLAYER_HTTP_FUNCTION_PROMISE_0800
'
,
0
,
async
function
(
done
)
{
surfaceID
=
globalThis
.
value
;
console
.
info
(
'
case new surfaceID is
'
+
surfaceID
);
let
videoPlayer
=
null
;
await
media
.
createVideoPlayer
().
then
((
video
)
=>
{
if
(
typeof
(
video
)
!=
'
undefined
'
)
{
videoPlayer
=
video
;
expect
(
videoPlayer
.
state
).
assertEqual
(
'
idle
'
);
}
else
{
console
.
info
(
'
case createVideoPlayer is failed
'
);
expect
().
assertFail
();
}
},
failureCallback
).
catch
(
catchCallback
);
videoPlayer
.
url
=
HTTP_SOURCE
;
await
videoPlayer
.
setDisplaySurface
(
surfaceID
).
then
(()
=>
{
expect
(
videoPlayer
.
state
).
assertEqual
(
'
idle
'
);
console
.
info
(
'
case setDisplaySurface success
'
);
},
failureCallback
).
catch
(
catchCallback
);
await
videoPlayer
.
prepare
().
then
(()
=>
{
expect
(
videoPlayer
.
state
).
assertEqual
(
'
prepared
'
);
expect
(
videoPlayer
.
duration
).
assertEqual
(
DURATION_TIME
);
expect
(
videoPlayer
.
width
).
assertEqual
(
WIDTH_VALUE
);
expect
(
videoPlayer
.
height
).
assertEqual
(
HEIGHT_VALUE
);
console
.
info
(
'
case prepare called!!
'
);
},
failureCallback
).
catch
(
catchCallback
);
let
startTime
=
videoPlayer
.
currentTime
;
await
videoPlayer
.
play
().
then
(()
=>
{
console
.
info
(
'
case play called!!
'
);
sleep
(
PLAY_TIME
);
expect
(
videoPlayer
.
state
).
assertEqual
(
'
playing
'
);
},
failureCallback
).
catch
(
catchCallback
);
let
endTime
=
videoPlayer
.
currentTime
;
expect
(
endTime
-
startTime
).
assertClose
(
PLAY_TIME
,
DELTA_TIME
);
await
videoPlayer
.
setVolume
(
1
).
then
(()
=>
{
expect
(
videoPlayer
.
state
).
assertEqual
(
'
playing
'
);
console
.
info
(
'
case setVolume called
'
);
},
failureCallback
).
catch
(
catchCallback
);
await
videoPlayer
.
release
().
then
(()
=>
{
console
.
info
(
'
case release called!!
'
);
},
failureCallback
).
catch
(
catchCallback
);
done
();
})
/* *
* @tc.number : SUB_MEDIA_VIDEO_PLAYER_HTTP_FUNCTION_PROMISE_0900
* @tc.name : 009.setSpeed (promise)
* @tc.desc : Video playback control test
* @tc.size : MediumTest
* @tc.type : Function test
* @tc.level : Level0
*/
it
(
'
SUB_MEDIA_VIDEO_PLAYER_HTTP_FUNCTION_PROMISE_0900
'
,
0
,
async
function
(
done
)
{
surfaceID
=
globalThis
.
value
;
console
.
info
(
'
case new surfaceID is
'
+
surfaceID
);
let
videoPlayer
=
null
;
await
media
.
createVideoPlayer
().
then
((
video
)
=>
{
if
(
typeof
(
video
)
!=
'
undefined
'
)
{
videoPlayer
=
video
;
expect
(
videoPlayer
.
state
).
assertEqual
(
'
idle
'
);
}
else
{
console
.
info
(
'
case createVideoPlayer is failed
'
);
expect
().
assertFail
();
}
},
failureCallback
).
catch
(
catchCallback
);
videoPlayer
.
url
=
HTTP_SOURCE
;
await
videoPlayer
.
setDisplaySurface
(
surfaceID
).
then
(()
=>
{
expect
(
videoPlayer
.
state
).
assertEqual
(
'
idle
'
);
console
.
info
(
'
case setDisplaySurface success
'
);
},
failureCallback
).
catch
(
catchCallback
);
await
videoPlayer
.
prepare
().
then
(()
=>
{
expect
(
videoPlayer
.
state
).
assertEqual
(
'
prepared
'
);
expect
(
videoPlayer
.
duration
).
assertEqual
(
DURATION_TIME
);
expect
(
videoPlayer
.
width
).
assertEqual
(
WIDTH_VALUE
);
expect
(
videoPlayer
.
height
).
assertEqual
(
HEIGHT_VALUE
);
console
.
info
(
'
case prepare called!!
'
);
},
failureCallback
).
catch
(
catchCallback
);
let
startTime
=
videoPlayer
.
currentTime
;
await
videoPlayer
.
play
().
then
(()
=>
{
console
.
info
(
'
case play called!!
'
);
sleep
(
PLAY_TIME
);
expect
(
videoPlayer
.
state
).
assertEqual
(
'
playing
'
);
},
failureCallback
).
catch
(
catchCallback
);
let
endTime
=
videoPlayer
.
currentTime
;
expect
(
endTime
-
startTime
).
assertClose
(
PLAY_TIME
,
DELTA_TIME
);
startTime
=
videoPlayer
.
currentTime
;
await
videoPlayer
.
setSpeed
(
media
.
PlaybackSpeed
.
SPEED_FORWARD_2_00_X
).
then
((
speedMode
)
=>
{
expect
(
videoPlayer
.
state
).
assertEqual
(
'
playing
'
);
sleep
(
1000
);
expect
(
speedMode
).
assertEqual
(
media
.
PlaybackSpeed
.
SPEED_FORWARD_2_00_X
);
console
.
info
(
'
case setSpeed called and speedMode is
'
+
speedMode
);
},
failureCallback
).
catch
(
catchCallback
);
endTime
=
videoPlayer
.
currentTime
;
expect
(
endTime
-
startTime
).
assertClose
(
2
*
1000
,
DELTA_TIME
);
await
videoPlayer
.
release
().
then
(()
=>
{
console
.
info
(
'
case release called!!
'
);
},
failureCallback
).
catch
(
catchCallback
);
done
();
})
/* *
* @tc.number : SUB_MEDIA_VIDEO_PLAYER_HTTP_FUNCTION_PROMISE_1000
* @tc.name : 010.getTrackDescription (promise)
* @tc.desc : Video playback control test
* @tc.size : MediumTest
* @tc.type : Function test
* @tc.level : Level1
*/
it
(
'
SUB_MEDIA_VIDEO_PLAYER_HTTP_FUNCTION_PROMISE_1000
'
,
0
,
async
function
(
done
)
{
surfaceID
=
globalThis
.
value
;
console
.
info
(
'
case new surfaceID is
'
+
surfaceID
);
let
videoPlayer
=
null
;
let
arrayDescription
=
null
;
await
media
.
createVideoPlayer
().
then
((
video
)
=>
{
if
(
typeof
(
video
)
!=
'
undefined
'
)
{
videoPlayer
=
video
;
expect
(
videoPlayer
.
state
).
assertEqual
(
'
idle
'
);
}
else
{
console
.
info
(
'
case createVideoPlayer is failed
'
);
expect
().
assertFail
();
}
},
failureCallback
).
catch
(
catchCallback
);
videoPlayer
.
url
=
HTTP_SOURCE
;
await
videoPlayer
.
setDisplaySurface
(
surfaceID
).
then
(()
=>
{
expect
(
videoPlayer
.
state
).
assertEqual
(
'
idle
'
);
console
.
info
(
'
case setDisplaySurface success
'
);
},
failureCallback
).
catch
(
catchCallback
);
await
videoPlayer
.
prepare
().
then
(()
=>
{
expect
(
videoPlayer
.
state
).
assertEqual
(
'
prepared
'
);
console
.
info
(
'
case prepare called!!
'
);
},
failureCallback
).
catch
(
catchCallback
);
await
videoPlayer
.
getTrackDescription
().
then
((
arrayList
)
=>
{
console
.
info
(
'
case getTrackDescription called!!
'
);
if
(
typeof
(
arrayList
)
!=
'
undefined
'
)
{
arrayDescription
=
arrayList
;
}
else
{
console
.
info
(
'
case getTrackDescription is failed
'
);
expect
().
assertFail
();
}
},
failureCallback
).
catch
(
catchCallback
);
for
(
let
i
=
0
;
i
<
arrayDescription
.
length
;
i
++
)
{
printfDescription
(
arrayDescription
[
i
]);
}
done
();
})
/* *
* @tc.number : SUB_MEDIA_VIDEO_PLAYER_HTTP_FUNCTION_PROMISE_1100
* @tc.name : 011.Loop true (promise)
* @tc.desc : Video playback control test
* @tc.size : MediumTest
* @tc.type : Function test
* @tc.level : Level1
*/
it
(
'
SUB_MEDIA_VIDEO_PLAYER_HTTP_FUNCTION_PROMISE_1100
'
,
0
,
async
function
(
done
)
{
surfaceID
=
globalThis
.
value
;
console
.
info
(
'
case new surfaceID is
'
+
surfaceID
);
let
videoPlayer
=
null
;
await
media
.
createVideoPlayer
().
then
((
video
)
=>
{
if
(
typeof
(
video
)
!=
'
undefined
'
)
{
videoPlayer
=
video
;
expect
(
videoPlayer
.
state
).
assertEqual
(
'
idle
'
);
}
else
{
console
.
info
(
'
case createVideoPlayer is failed
'
);
expect
().
assertFail
();
}
},
failureCallback
).
catch
(
catchCallback
);
videoPlayer
.
url
=
HTTP_SOURCE
;
await
videoPlayer
.
setDisplaySurface
(
surfaceID
).
then
(()
=>
{
expect
(
videoPlayer
.
state
).
assertEqual
(
'
idle
'
);
console
.
info
(
'
case setDisplaySurface success
'
);
},
failureCallback
).
catch
(
catchCallback
);
await
videoPlayer
.
prepare
().
then
(()
=>
{
videoPlayer
.
loop
=
true
;
expect
(
videoPlayer
.
state
).
assertEqual
(
'
prepared
'
);
expect
(
videoPlayer
.
duration
).
assertEqual
(
DURATION_TIME
);
expect
(
videoPlayer
.
width
).
assertEqual
(
WIDTH_VALUE
);
expect
(
videoPlayer
.
height
).
assertEqual
(
HEIGHT_VALUE
);
console
.
info
(
'
case prepare called!!
'
);
},
failureCallback
).
catch
(
catchCallback
);
let
startTime
=
videoPlayer
.
currentTime
;
await
videoPlayer
.
play
().
then
(()
=>
{
expect
(
videoPlayer
.
loop
).
assertEqual
(
true
);
console
.
info
(
'
case play called!!
'
);
sleep
(
PLAY_TIME
);
expect
(
videoPlayer
.
state
).
assertEqual
(
'
playing
'
);
},
failureCallback
).
catch
(
catchCallback
);
let
endTime
=
videoPlayer
.
currentTime
;
expect
(
endTime
-
startTime
).
assertClose
(
PLAY_TIME
,
DELTA_TIME
);
await
videoPlayer
.
seek
(
DURATION_TIME
,
media
.
SeekMode
.
SEEK_NEXT_SYNC
).
then
((
seekDoneTime
)
=>
{
expect
(
videoPlayer
.
state
).
assertEqual
(
'
playing
'
);
expect
(
seekDoneTime
).
assertEqual
(
DURATION_TIME
);
console
.
info
(
'
case seek called and seekDoneTime is
'
+
seekDoneTime
);
},
failureCallback
).
catch
(
catchCallback
);
await
videoPlayer
.
release
().
then
(()
=>
{
console
.
info
(
'
case release called!!
'
);
},
failureCallback
).
catch
(
catchCallback
);
done
();
})
})
multimedia/media/media_js_standard/httpPlayer/src/main/js/test/List.test.js
0 → 100644
浏览文件 @
5588ef72
/*
* Copyright (C) 2022 Huawei Device Co., Ltd.
* 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
*
* http://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.
*/
require
(
'
./HttpPlayerCompatibilityTest.test.js
'
)
require
(
'
./HttpPlayerFuncPromiseTest.test.js
'
)
require
(
'
./HttpPlayerFuncCallbackTest.test.js
'
)
multimedia/media/media_js_standard/httpPlayer/src/main/resources/base/element/string.json
0 → 100644
浏览文件 @
5588ef72
{
"string"
:
[
{
"name"
:
"entry_MainAbility"
,
"value"
:
"entry_MainAbility"
},
{
"name"
:
"mainability_description"
,
"value"
:
"JS_Empty Ability"
}
]
}
\ No newline at end of file
multimedia/media/media_js_standard/httpPlayer/src/main/resources/base/media/icon.png
0 → 100644
浏览文件 @
5588ef72
6.6 KB
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录