HarmonyOS 5 直播课堂应用:手机开课→平板批注→智慧屏展示


​​​1. 功能概述​​
在 ​​HarmonyOS 5.1.0​​ 的分布式能力支持下,教师可以通过 ​​手机发起直播​​,在 ​​平板上进行手写批注​​,并实时同步至 ​​智慧屏展示课件​​,实现多设备无缝协同教学。

​​核心能力​​
​​设备发现与组网​​:通过 ​​软总线(SoftBus)​​ 自动发现附近设备并建立低延迟连接。
​​分布式数据同步​​:直播流、批注数据、课件内容实时跨设备同步。
​​多端交互优化​​:支持 ​​手势控制、语音指令、触控笔输入​​ 等多种交互方式。
​​2. 技术实现(含关键代码)​​
​​2.1 设备发现与连接​​
使用 ​​@ohos.distributedHardware.deviceManager​​ 进行设备发现与组网:

import deviceManager from '@ohos.distributedHardware.deviceManager';

// 1. 初始化设备管理
let deviceList = [];
const SUBSCRIBE_ID = 1001;

// 注册设备状态监听
deviceManager.createDeviceManager('com.example.liveclass', (err, manager) => {
if (err) {
console.error('Failed to create device manager:', err);
return;
}
manager.on('deviceStateChange', (data) => {
console.log('Device state changed:', data);
});
manager.on('deviceFound', (data) => {
console.log('New device found:', data);
deviceList.push(data.device);
});
manager.startDeviceDiscovery(SUBSCRIBE_ID); // 开始扫描设备
});

// 2. 选择设备并建立连接
function connectToDevice(deviceId) {
const CHANNEL_ID = 'live_class_channel';
let softBus = new softBus.Channel(CHANNEL_ID, {
onMessage: (data) => {
console.log('Received data:', data);
},
onConnect: () => {
console.log('Device connected!');
}
});
softBus.connect(deviceId); // 通过软总线连接目标设备
}

​​2.2 直播流分发与同步​​
使用 ​​@ohos.distributedMedia​​ 实现直播流跨设备传输:

import distributedMedia from '@ohos.distributedMedia';

// 手机端:推送直播流
function startLiveStream() {
const LIVE_STREAM_ID = 'teacher_live_stream';
let mediaSender = distributedMedia.createMediaSender(LIVE_STREAM_ID);
mediaSender.startBroadcast((err) => {
if (err) {
console.error('Failed to start broadcast:', err);
} else {
console.log('Live stream started!');
}
});
}

// 智慧屏端:接收直播流
function displayLiveStream() {
const LIVE_STREAM_ID = 'teacher_live_stream';
let mediaReceiver = distributedMedia.createMediaReceiver(LIVE_STREAM_ID);
mediaReceiver.on('streamReady', (surfaceId) => {
console.log('Stream ready, surfaceId:', surfaceId);
// 将Surface绑定到智慧屏的显示
let xComponent = document.getElementById('live_screen');
xComponent.setSurfaceId(surfaceId);
});
}
​​2.3 平板批注数据同步​​
使用 ​​@ohos.distributedData​​ 同步手写批注:

import distributedData from '@ohos.distributedData';

// 平板端:监听触控笔输入并同步批注
let kvManager = new distributedData.KVManager('annotations');
let kvStore = kvManager.createKVStore('live_class_annotations');

// 监听画板触摸事件
canvasElement.on('touchmove', (event) => {
let annotation = {
x: event.touches[0].x,
y: event.touches[0].y,
color: '#FF0000',
width: 2
};
kvStore.put('latest_annotation', JSON.stringify(annotation)); // 存储批注数据
});

// 智慧屏端:实时接收批注并渲染
kvStore.on('dataChange', (data) => {
let annotation = JSON.parse(data.value);
renderAnnotation(annotation); // 在课件上绘制批注
});
​​3. 示例场景​​
​​场景:教师使用三设备协同授课​​
​​手机端​​:
点击 ​​“开始直播”​​,摄像头画面通过 distributedMedia 推送至智慧屏。
​​平板端​​:
使用手写笔在课件上批注,数据通过 distributedData 同步到智慧屏。
​​智慧屏端​​:
实时显示 ​​直播画面 + 批注​​,学生可通过电视或投影仪观看。
​​4. 优化与扩展​​
​​低延迟优化​​:使用 ​​端侧AI编码​​(H.265)减少传输数据量。
​​离线缓存​​:若网络中断,批注数据暂存本地,恢复后自动同步。
​​多模态交互​​:支持 ​​语音控制​​(“翻页”、“放大”)和 ​​手势操作​​(双指缩放)。
​​5. 总结​​
通过 ​​HarmonyOS 5.1.0​​ 的分布式能力,实现了:
✅ ​​多设备无感切换​​(手机→平板→智慧屏)
✅ ​​实时数据同步​​(直播流、批注、课件)
✅ ​​自然交互​​(手写、语音、手势)

​​适用场景​​:在线教育、企业培训、远程会议。

如需完整Demo代码或更详细的技术文档,欢迎交流! 🚀

加入班级考证领奖
感兴趣的小伙伴, 可以私聊我

  1. 班级链接:https://developer.huawei.com/consumer/cn/training/classDetail/13f68a5f423e497d8ced35beabe05b1e?type=1?ha_source=hmosclass&ha_sourceId=89000248

2.为匹配获奖,班级学号请填写与开发者联盟一致的手机号码(登录的手机号码)

posted @ 2025-08-08 16:24  libo_2025  阅读(141)  评论(0)    收藏  举报