未验证 提交 b26c4374 编写于 作者: O openharmony_ci 提交者: Gitee

!8737 解决avRecorder个别case偶现fail问题 3.2release

Merge pull request !8737 from Nicklaus/OpenHarmony-3.2-Release
...@@ -425,7 +425,6 @@ function setAVPlayerPlayAndPauseWithCallBack(src, avPlayer, playTime, done) { ...@@ -425,7 +425,6 @@ function setAVPlayerPlayAndPauseWithCallBack(src, avPlayer, playTime, done) {
console.info('playPauseLoopWithCallBack avPlayer from play to stop') console.info('playPauseLoopWithCallBack avPlayer from play to stop')
avPlayer.release().then(() => { avPlayer.release().then(() => {
console.info('playPauseLoopWithCallBack avPlayer from stop to release') console.info('playPauseLoopWithCallBack avPlayer from stop to release')
offCallback(avPlayer, ['stateChange', 'error']);
done(); done();
}, mediaTestBase.failureCallback).catch(mediaTestBase.catchCallback); }, mediaTestBase.failureCallback).catch(mediaTestBase.catchCallback);
}, mediaTestBase.failureCallback).catch(mediaTestBase.catchCallback); }, mediaTestBase.failureCallback).catch(mediaTestBase.catchCallback);
...@@ -556,7 +555,6 @@ async function playToCompletedLoop(src, avPlayer, done) { ...@@ -556,7 +555,6 @@ async function playToCompletedLoop(src, avPlayer, done) {
console.info('playToCompletedLoop avPlayer from play to stop') console.info('playToCompletedLoop avPlayer from play to stop')
avPlayer.release().then(() => { avPlayer.release().then(() => {
console.info('playToCompletedLoop avPlayer from stop to release') console.info('playToCompletedLoop avPlayer from stop to release')
offCallback(avPlayer, ['stateChange', 'error']);
done(); done();
}, mediaTestBase.failureCallback).catch(mediaTestBase.catchCallback); }, mediaTestBase.failureCallback).catch(mediaTestBase.catchCallback);
}, mediaTestBase.failureCallback).catch(mediaTestBase.catchCallback); }, mediaTestBase.failureCallback).catch(mediaTestBase.catchCallback);
...@@ -611,29 +609,30 @@ export async function seekLoop(src, avPlayer, done) { ...@@ -611,29 +609,30 @@ export async function seekLoop(src, avPlayer, done) {
}, (err) => { }, (err) => {
console.error('seekLoop play filed,error message is :' + err.message) console.error('seekLoop play filed,error message is :' + err.message)
}) })
if(avPlayer.state == AV_PLAYER_STATE.PLAYING){ await seekLoopWithCallback(avPlayer)
console.info('seekLoop avPlayer from play to seek') console.info('seekLoop avPlayer from play to seek')
// play seek loop 1000 times // play seek loop 1000 times
for(var loopTime = 0;loopTime < 1000; loopTime++){
avPlayer.seek(loopTime)
console.info(`case seekLoopWithCallback loopTime is ${loopTime}`);
}
}
await avPlayer.stop().then(() => { await avPlayer.stop().then(() => {
console.info('seekLoopWithCallback avPlayer from play to stop') console.info('seekLoopWithCallback avPlayer from play to stop')
offCallback(avPlayer, ['stateChange', 'seekDone']); }, mediaTestBase.failureCallback).catch(mediaTestBase.catchCallback);
avPlayer.release().then(() => { await avPlayer.release().then(() => {
console.info('seekLoopWithCallback avPlayer from stop to release') console.info('seekLoopWithCallback avPlayer from stop to release')
expect(avPlayer.state).assertEqual(AV_PLAYER_STATE.RELEASED); expect(avPlayer.state).assertEqual(AV_PLAYER_STATE.RELEASED);
done(); done();
}, mediaTestBase.failureCallback).catch(mediaTestBase.catchCallback); }, mediaTestBase.failureCallback).catch(mediaTestBase.catchCallback);
}, mediaTestBase.failureCallback).catch(mediaTestBase.catchCallback);
} }
async function seekLoopWithCallback(avPlayer) { async function seekLoopWithCallback(avPlayer) {
avPlayer.on('seekDone', async (seekDoneTime) => { for (let loopTime = 0; loopTime < 5000; loopTime += 5) {
await new Promise(resolve => {
avPlayer.on('seekDone', seekDoneTime => {
console.info(`case seekDone called seekDoneTime is ${seekDoneTime}`); console.info(`case seekDone called seekDoneTime is ${seekDoneTime}`);
resolve();
});
avPlayer.seek(loopTime);
console.info(`case seekLoopWithCallback loopTime is ${loopTime}`);
}); });
}
} }
export async function seekLoopWithoutCallback(src, avPlayer, done) { export async function seekLoopWithoutCallback(src, avPlayer, done) {
...@@ -767,15 +766,12 @@ export async function createToReleaseLoop(src, avPlayer, done) { ...@@ -767,15 +766,12 @@ export async function createToReleaseLoop(src, avPlayer, done) {
await avPlayer.release().then(() => { await avPlayer.release().then(() => {
console.info('createToReleaseLoop avPlayer from stop to release') console.info('createToReleaseLoop avPlayer from stop to release')
expect(avPlayer.state).assertEqual(AV_PLAYER_STATE.RELEASED); expect(avPlayer.state).assertEqual(AV_PLAYER_STATE.RELEASED);
if(i==999){
done();
}
}, mediaTestBase.failureCallback).catch(mediaTestBase.catchCallback); }, mediaTestBase.failureCallback).catch(mediaTestBase.catchCallback);
console.info(`case createToReleaseLoop loop is ${i}`); console.info(`case createToReleaseLoop loop is ${i}`);
} }
await avPlayer.release().then(() => {
console.info('createToReleaseLoop avPlayer from stop to release')
expect(avPlayer.state).assertEqual(AV_PLAYER_STATE.RELEASED);
done();
}, mediaTestBase.failureCallback).catch(mediaTestBase.catchCallback);
} }
let createLoopTime = 0; let createLoopTime = 0;
...@@ -785,7 +781,7 @@ export async function createTimeWithCallback(src, avPlayer, done) { ...@@ -785,7 +781,7 @@ export async function createTimeWithCallback(src, avPlayer, done) {
avPlayer = await idle(src, avPlayer) avPlayer = await idle(src, avPlayer)
createStart = Date.now(); createStart = Date.now();
console.info(`createTimeWithCallback createStart time is : ${createStart}`) console.info(`createTimeWithCallback createStart time is : ${createStart}`)
createTimeWithCallback(src, avPlayer, done) createTimeCallback(src, avPlayer, done)
} }
function createTimeCallback(src, avPlayer, done){ function createTimeCallback(src, avPlayer, done){
...@@ -1778,7 +1774,6 @@ function setSpeedTimeCallback(avPlayer, done) { ...@@ -1778,7 +1774,6 @@ function setSpeedTimeCallback(avPlayer, done) {
expect(avPlayer.state).assertEqual(AV_PLAYER_STATE.PLAYING); expect(avPlayer.state).assertEqual(AV_PLAYER_STATE.PLAYING);
if(loopTime == 10){ if(loopTime == 10){
avPlayer.release().then(() => { avPlayer.release().then(() => {
offCallback(avPlayer, ['stateChange', 'error']);
console.info('setSpeedTimeCallback avPlayer is release') console.info('setSpeedTimeCallback avPlayer is release')
expect(avPlayer.state).assertEqual(AV_PLAYER_STATE.RELEASED); expect(avPlayer.state).assertEqual(AV_PLAYER_STATE.RELEASED);
let avg = totalTime/10; let avg = totalTime/10;
...@@ -1889,7 +1884,6 @@ function setBitrateTimeCallback(avPlayer, done) { ...@@ -1889,7 +1884,6 @@ function setBitrateTimeCallback(avPlayer, done) {
expect(avPlayer.state).assertEqual(AV_PLAYER_STATE.PLAYING); expect(avPlayer.state).assertEqual(AV_PLAYER_STATE.PLAYING);
if(loopTime == 10){ if(loopTime == 10){
avPlayer.release().then(() => { avPlayer.release().then(() => {
offCallback(avPlayer, ['stateChange', 'error']);
console.info('setBitrateTimeCallback avPlayer is release') console.info('setBitrateTimeCallback avPlayer is release')
expect(avPlayer.state).assertEqual(AV_PLAYER_STATE.RELEASED); expect(avPlayer.state).assertEqual(AV_PLAYER_STATE.RELEASED);
let avg = totalTime/10; let avg = totalTime/10;
...@@ -2001,7 +1995,6 @@ function setVolumeTimeCallback(avPlayer, done) { ...@@ -2001,7 +1995,6 @@ function setVolumeTimeCallback(avPlayer, done) {
expect(avPlayer.state).assertEqual(AV_PLAYER_STATE.PLAYING); expect(avPlayer.state).assertEqual(AV_PLAYER_STATE.PLAYING);
if(loopTime == 10){ if(loopTime == 10){
avPlayer.release().then(() => { avPlayer.release().then(() => {
offCallback(avPlayer, ['stateChange', 'error']);
console.info('setVolumeTimeCallback avPlayer is release') console.info('setVolumeTimeCallback avPlayer is release')
expect(avPlayer.state).assertEqual(AV_PLAYER_STATE.RELEASED); expect(avPlayer.state).assertEqual(AV_PLAYER_STATE.RELEASED);
let avg = totalTime/10; let avg = totalTime/10;
...@@ -2058,7 +2051,6 @@ export async function firstFrameTime(src, avPlayer, done) { ...@@ -2058,7 +2051,6 @@ export async function firstFrameTime(src, avPlayer, done) {
console.info("firstFrameTime execution time is :" + execution) console.info("firstFrameTime execution time is :" + execution)
sleep(100) sleep(100)
avPlayer.release().then(() => { avPlayer.release().then(() => {
offCallback(avPlayer, ['stateChange','startRenderFrame']);
console.info('firstFrameTime avPlayer is release') console.info('firstFrameTime avPlayer is release')
expect(avPlayer.state).assertEqual(AV_PLAYER_STATE.RELEASED); expect(avPlayer.state).assertEqual(AV_PLAYER_STATE.RELEASED);
avPlayer = null; avPlayer = null;
...@@ -2122,6 +2114,13 @@ function setAVPlayerPlay(src, avPlayer, done) { ...@@ -2122,6 +2114,13 @@ function setAVPlayerPlay(src, avPlayer, done) {
case AV_PLAYER_STATE.PLAYING: case AV_PLAYER_STATE.PLAYING:
console.info('setAVPlayerPlay play state is PLAYING') console.info('setAVPlayerPlay play state is PLAYING')
expect(avPlayer.state).assertEqual(AV_PLAYER_STATE.PLAYING); expect(avPlayer.state).assertEqual(AV_PLAYER_STATE.PLAYING);
if(avPlayer.duration > 3000){
mediaTestBase.msleepAsync(3000);
avPlayer.seek(avPlayer.duration, media.SeekMode.SEEK_NEXT_SYNC)
}else{
mediaTestBase.msleepAsync(500);
avPlayer.seek(avPlayer.duration, media.SeekMode.SEEK_NEXT_SYNC)
}
break; break;
case AV_PLAYER_STATE.COMPLETED: case AV_PLAYER_STATE.COMPLETED:
expect(avPlayer.currentTime).assertEqual(avPlayer.duration); expect(avPlayer.currentTime).assertEqual(avPlayer.duration);
...@@ -2131,7 +2130,6 @@ function setAVPlayerPlay(src, avPlayer, done) { ...@@ -2131,7 +2130,6 @@ function setAVPlayerPlay(src, avPlayer, done) {
break; break;
case AV_PLAYER_STATE.RELEASED: case AV_PLAYER_STATE.RELEASED:
expect(avPlayer.state).assertEqual('released'); expect(avPlayer.state).assertEqual('released');
offCallback(avPlayer, ['stateChange', 'error']);
avPlayer = null; avPlayer = null;
done(); done();
break; break;
......
...@@ -1910,14 +1910,14 @@ export async function avRecorderReliabilitTest31(avConfig, avRecorder, recorderT ...@@ -1910,14 +1910,14 @@ export async function avRecorderReliabilitTest31(avConfig, avRecorder, recorderT
let surfaceID = null; let surfaceID = null;
let result = true; let result = true;
avRecorder = await idle(avRecorder); avRecorder = await idle(avRecorder);
avRecorder.getInputSurface().then((surfaceId) => { await avRecorder.getInputSurface().then((surfaceId) => {
console.info('avRecorderReliabilitTest31 getInputSurface success'); console.info('avRecorderReliabilitTest31 getInputSurface success');
surfaceID = surfaceId; surfaceID = surfaceId;
}).catch((err) => { }).catch((err) => {
console.info('avRecorderReliabilitTest31 getInputSurface failed and catch error is ' + err.message); console.info('avRecorderReliabilitTest31 getInputSurface failed and catch error is ' + err.message);
result = false result = false
}); });
expect(result).assertEqual(true); expect(result).assertEqual(false);
await releaseDone(avRecorder, done) await releaseDone(avRecorder, done)
} }
...@@ -2196,6 +2196,18 @@ export async function avRecorderReliabilitTest37(avConfig, avRecorder, recorderT ...@@ -2196,6 +2196,18 @@ export async function avRecorderReliabilitTest37(avConfig, avRecorder, recorderT
await preparePromise(avRecorder, avConfig) await preparePromise(avRecorder, avConfig)
} }
async function getInputSurfaceCatachError(avRecorder, result, surfaceID){
await avRecorder.getInputSurface().then((surfaceId) => {
console.info('getInputSurfaceTest38 getInputSurface success');
surfaceID = surfaceId;
}).catch((err) => {
console.info('getInputSurfaceTest38 getInputSurface failed and catch error is ' + err.message);
result = false
console.info('getInputSurfaceTest38 getInputSurface result is ' + result);
expect(result).assertEqual(false);
});
}
export async function getInputSurfaceTest38(avConfig, avRecorder, recorderTime, done) { export async function getInputSurfaceTest38(avConfig, avRecorder, recorderTime, done) {
let result1 = true; let result1 = true;
let result2 = true; let result2 = true;
...@@ -2208,33 +2220,9 @@ export async function getInputSurfaceTest38(avConfig, avRecorder, recorderTime, ...@@ -2208,33 +2220,9 @@ export async function getInputSurfaceTest38(avConfig, avRecorder, recorderTime,
case AV_RECORDER_STATE.PREPARED: case AV_RECORDER_STATE.PREPARED:
console.info(`case getInputSurfaceTest38 state is PREPARED`); console.info(`case getInputSurfaceTest38 state is PREPARED`);
expect(avRecorder.state).assertEqual('prepared'); expect(avRecorder.state).assertEqual('prepared');
getInputSurfaceCatachError(avRecorder, result1, surfaceID)
avRecorder.getInputSurface().then((surfaceId) => { getInputSurfaceCatachError(avRecorder, result2, surfaceID)
console.info('getInputSurfaceTest38 getInputSurface success'); getInputSurfaceCatachError(avRecorder, result3, surfaceID)
surfaceID = surfaceId;
}).catch((err) => {
console.info('getInputSurfaceTest38 getInputSurface failed and catch error is ' + err.message);
result1 = false
});
expect(result1).assertEqual(true);
avRecorder.getInputSurface().then((surfaceId) => {
console.info('getInputSurfaceTest38 getInputSurface success');
surfaceID = surfaceId;
}).catch((err) => {
console.info('getInputSurfaceTest38 getInputSurface failed and catch error is ' + err.message);
result2 = false
});
expect(result2).assertEqual(true);
avRecorder.getInputSurface().then((surfaceId) => {
console.info('getInputSurfaceTest38 getInputSurface success');
surfaceID = surfaceId;
}).catch((err) => {
console.info('getInputSurfaceTest38 getInputSurface failed and catch error is ' + err.message);
result3 = false
});
expect(result3).assertEqual(true);
releasePromise(avRecorder) releasePromise(avRecorder)
break; break;
case AV_RECORDER_STATE.RELEASED: case AV_RECORDER_STATE.RELEASED:
...@@ -2256,6 +2244,7 @@ export async function getInputSurfaceTest38(avConfig, avRecorder, recorderTime, ...@@ -2256,6 +2244,7 @@ export async function getInputSurfaceTest38(avConfig, avRecorder, recorderTime,
}); });
} }
export async function avRecorderReliabilitTest38(avConfig, avRecorder, recorderTime, done) { export async function avRecorderReliabilitTest38(avConfig, avRecorder, recorderTime, done) {
avRecorder = await idle(avRecorder); avRecorder = await idle(avRecorder);
getInputSurfaceTest38(avConfig, avRecorder, recorderTime, done) getInputSurfaceTest38(avConfig, avRecorder, recorderTime, done)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册