NodeMediaClient-Harmony

NodePlayer 组件

OpenHarmony_5.0 / HarmonyOS_NEXT 平台的低延迟直播播放组件

特性

  • 支持RTSP,RTMP(S),HTTP(S)_FLV,HLS,KMP,UDP_MPEGTS等协议。
  • 支持H.264/H.265视频硬件解码渲染
  • 支持AAC/G.711音频解码播放
  • 毫秒级低延迟
  • 延迟消除

安装依赖

使用DevEco打开项目后,点击下方Terminal,输入命令安装依赖

  1. ohpm install @nodemedia/nodemediaclient

或者通过nodemedia自建仓库安装

  1. ohpm install @nodemedia/nodemediaclient --registry https://repo.nodemedia.cn/repos/ohpm

引用播放组件

  1. import { router } from '@kit.ArkUI';
  2. import { NodePlayer, NodePlayerController } from '@nodemedia/nodemediaclient';
  3. @Entry
  4. @Component
  5. struct VideoViewPage {
  6. // @State src: string = 'rtmp://192.168.0.2/live/bbb';
  7. // @State src: string = 'rtsp://admin:admin@192.168.0.2/Streaming/Channels/101';
  8. @State src: string = 'https://192.168.0.2:8443/live/imu.flv';
  9. private license: string = '';
  10. private controller: NodePlayerController = new NodePlayerController();
  11. build() {
  12. Column() {
  13. Button("Back").onClick(() => {
  14. router.back()
  15. })
  16. NodePlayer({
  17. license: this.license,
  18. src: this.src,
  19. scaleMode: 1,
  20. bufferTime: 1000,
  21. controller: this.controller,
  22. onEvent: (code: number, msg: string) => {
  23. console.info('NodePlayer on event, code:' + code, 'message:' + msg);
  24. }
  25. })
  26. .width('100%')
  27. .height('40%')
  28. TextInput({ text: this.src })
  29. .onChange((v)=>{
  30. this.src = v;
  31. })
  32. .padding('10')
  33. Row() {
  34. Button("开始播放")
  35. .onClick(() => {
  36. this.controller.start()
  37. })
  38. Button("停止播放")
  39. .onClick(() => {
  40. this.controller.stop()
  41. })
  42. }
  43. }
  44. .padding('10')
  45. }
  46. }

申请网络权限

  1. "requestPermissions": [
  2. {
  3. "name": "ohos.permission.INTERNET"
  4. }
  5. ],

NodePublisher 组件 (待实现)

OpenHarmony_5.0 / HarmonyOS_NEXT 平台的低延迟直播推流组件