我来自中工,是一名大三学生,这学期我们系统学习了鸿蒙相关的课程,如ArkTS开发语言,TypeScript基础,ArkUI开发框架等等...今天简单的做了一个小程序,使用的工具是DevEco Studio,是老师推荐的比较适合初学者的一款软件,有很丰富的功能。以下就是我的作业内容。
首先打开DevEco Studio,点击Create Harmony Project,选择Empty Ability创建一个空文件,点击Next。
然后是项目的细节设计,分别是名字,存储地址,SDK,和设备样例。设置完毕后,点击Finish。
创建完成后,就是模版样例。
接下来就是代码的编写了。
代码如下:
const cloud = require('HarmonyAPI'); const crypto = require('crypto');
cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV });
exports.main = async (event, context) => { const params = { cloud_app_id: 'your-app-id', cloud_app_secret: 'your-app-secret', user_id: '123', password: crypto.randomBytes(32).toString('hex') };
const loginResult = await cloud.callFunction({ name: 'Login', data: params });
return { message: 'Sucess' }; }; const cloud = require('HarmonyAPI'); const muc = require('muc'); const video = require('video'); const audio = require('audio');
cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV });
exports.main = async (event, context) => { const params = { cloud_app_id: 'your-app-id', cloud_app_secret: 'your-app-secret', user_id: '123' };
const videoCall = await cloud.createVideoCall(params); const videoConference = await cloud.startVideoConference(videoCall);
console.log('Action');
videoConference.on('state-changed' , (e, state) => { console.log('PhoneState:', state); });
videoConference.on('connection-lost' , (e, reason) => { console.log('FaileReason:', reason); });
videoConference.on('receive-data' , (e, data) , (data) => { console.log('AudioData:', data); });
videoConference.on('stop' , (e, reason) => { console.log('StopReason:', reason); });
muc.on('state-changed' , (e, state) => { console. log('HomeState:', state); });
muc.on('connection-lost' , (e, reason) => { console.log('BreakReason:', reason); });
muc.on('receive-data' , (e, data) , (data) => { console.log ('VideoData:', data); });
muc.on('stop' , (e, reason) => { console.log('VideoStopReason:', reason); });
console.log('VideoOver'); }; const cloud = require('HarmonyAPI'); const muc = require('muc'); const video = require('video'); const audio = require('audio'); const rfcomm = require('rfcomm');const rtcp = require('rtcp'); const http = require('http'); const crypto = require('crypto'); const options = require('options');
cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV });
exports.main = async (event, context) => { const params = { cloud_app _id: 'your-app-id', cloud_app_secret: 'your-app-secret', user_id: '123' };
const videoCall = await cloud.createVideoCall(params); const videoConference = await cloud.startVideoConference(videoCall);
console.log('VideoStart');
videoConference.on('state-changed' , (e , state) => { console. log('VideoState:', state); });
videoConference.on('connection-lost' , (e , reason) => { console.log('BreakReason:', reason); });
videoConference.on('receive-data' , (e , data) , (data) => { console. log('VideoData:', data); });
videoConference.on('stop'
, (e
, reason) => {
console.log('VideoStopReason:', reason);
});
muc.on('state-changed' , (e , state ) => { console. log('HomeState:', state); });
muc.on('connection-lost' , (e , reason) => { console.log('VideoBreakReason:', reason); });
muc.on('receive-data' , (e , data) , (data) => { console.log('VideoData:', data); });
muc.on('stop' , (e , reason) => { console.log('StopReason:', reason); });
const rtcpSocket = options.createRtcpSocket({ rtcpReceiveBufferSize: 128 , rtcpTtl: 10000 });
rtcpSocket.on('rtcp-rsize' , (e , size) => { console.log('RTCP R-RSize: ', size); });
rtcpSocket.on('rtcp-report' , (e , size) => { console.log('RTCP Report: ', size); const rtcpInfo = size.sp if (rtcpInfo.length > 2) { const maxAudio = parseInt(rtcpInfo[2].sp ); const maxVideo = parseInt(rtcpInfo[3].sp );
rtcpSocket.send(JSON.stringify({
rtcpNack: {
maxAudio: maxAudio,
maxVideo: maxVideo
这次学习就到此为止了,感谢。