HarmonyOS 鸿蒙Next video 控件无法播放网络视频
HarmonyOS 鸿蒙Next video 控件无法播放网络视频
https://media.w3.org/2010/05/sintel/trailer.mp4
video 控件无法播放网络视频
视频下载放在 resources/base/media 文件夹中却可以播放
网络权限已添加
```json
{
"requestPermissions": [
{
"name": "ohos.permission.INTERNET",
"usedScene": {
"when": "always"
}
}
]
}
代码如下
[@Entry](/user/Entry)
[@Component](/user/Component)
struct VideoCreateComponent {
[@State](/user/State) videoSrc: string = "http://vfx.mtime.cn/Video/2017/03/31/mp4/170331093811717750.mp4"
[@State](/user/State) previewUri: Resource = $r('app.media.butterfly1')
[@State](/user/State) curRate: PlaybackSpeed = PlaybackSpeed.Speed_Forward_1_00_X
[@State](/user/State) isAutoPlay: boolean = true
[@State](/user/State) showControls: boolean = true
controller: VideoController = new VideoController()
build() {
Column() {
Video({
src: this.videoSrc,
previewUri: this.previewUri,
currentProgressRate: this.curRate,
controller: this.controller
}).width('100%').height(600)
.autoPlay(this.isAutoPlay)
.controls(this.showControls)
.onStart(() => {
Log.debug('onStart')
this.videoSrc = 'https://media.w3.org/2010/05/sintel/trailer.mp4'
})
.onPause(() => {
Log.debug('onPause')
})
.onFinish(() => {
Log.debug('onFinish')
})
.onError(() => {
Log.error('onError')
})
.onPrepared((e) => {
Log.debug('onPrepared is ' + e.duration)
})
.onSeeking((e) => {
Log.debug('onSeeking is ' + e.time)
})
.onSeeked((e) => {
Log.debug('onSeeked is ' + e.time)
})
.onUpdate((e) => {
Log.debug('onUpdate is ' + e.time)
})
Row() {
Button('src').onClick(() => {
this.videoSrc = "https://media.w3.org/2010/05/sintel/trailer.mp4" // 切换视频源
}).margin(5)
Button('previewUri').onClick(() => {
this.previewUri = $r('app.media.butterfly2') // 切换视频预览海报
}).margin(5)
Button('controls').onClick(() => {
this.showControls = !this.showControls // 切换是否显示视频控制栏
}).margin(5)
}
Row() {
Button('start').onClick(() => {
this.controller.start() // 开始播放
}).margin(5)
Button('pause').onClick(() => {
this.controller.pause() // 暂停播放
}).margin(5)
Button('stop').onClick(() => {
this.controller.stop() // 结束播放
}).margin(5)
Button('setTime').onClick(() => {
this.controller.setCurrentTime(10, SeekMode.Accurate) // 精准跳转到视频的10s位置
}).margin(5)
}
Row() {
Button('rate 0.75').onClick(() => {
this.curRate = PlaybackSpeed.Speed_Forward_0_75_X // 0.75倍速播放
}).margin(5)
Button('rate 1').onClick(() => {
this.curRate = PlaybackSpeed.Speed_Forward_1_00_X // 原倍速播放
}).margin(5)
Button('rate 2').onClick(() => {
this.curRate = PlaybackSpeed.Speed_Forward_2_00_X // 2倍速播放
}).margin(5)
}
}
}
}
更多关于HarmonyOS 鸿蒙Next video 控件无法播放网络视频的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
6 回复
视频能播放了吗 我也遇到了同样的问题 跟网络无关 不论数据流量还是wifi 都播放不了
更多关于HarmonyOS 鸿蒙Next video 控件无法播放网络视频的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
我这边可以播放你这个网络视频,代码没问题,应该是网络限制了,看看是不是你们公司屏蔽了相关域名?
换个网络试试。
@Entry
@Component
struct VideoCreateComponent {
@State videoSrc: string = "http://vfx.mtime.cn/Video/2017/03/31/mp4/170331093811717750.mp4"
@State curRate: PlaybackSpeed = PlaybackSpeed.Speed_Forward_1_00_X
@State isAutoPlay: boolean = true
@State showControls: boolean = true
controller: VideoController = new VideoController()
build() {
Column() {
Video({
src: this.videoSrc,
currentProgressRate: this.curRate,
controller: this.controller
}).width('100%').height(600)
.autoPlay(this.isAutoPlay)
.controls(this.showControls)
.onStart(() => {
this.videoSrc = 'https://media.w3.org/2010/05/sintel/trailer.mp4'
})
.onPause(() => {})
.onFinish(() => {})
.onError(() => {})
.onPrepared((e) => {})
.onSeeking((e) => {})
.onSeeked((e) => {})
.onUpdate((e) => {})
Row() {
Button('src').onClick(() => {
this.videoSrc = "https://media.w3.org/2010/05/sintel/trailer.mp4" // 切换视频源
}).margin(5)
Button('previewUri').onClick(() => {})
.margin(5)
Button('controls').onClick(() => {
this.showControls = !this.showControls // 切换是否显示视频控制栏
}).margin(5)
}
Row() {
Button('start').onClick(() => {
this.controller.start() // 开始播放
}).margin(5)
Button('pause').onClick(() => {
this.controller.pause() // 暂停播放
}).margin(5)
Button('stop').onClick(() => {
this.controller.stop() // 结束播放
}).margin(5)
Button('setTime').onClick(() => {
this.controller.setCurrentTime(10, SeekMode.Accurate) // 精准跳转到视频的10s位置
}).margin(5)
}
Row() {
Button('rate 0.75').onClick(() => {
this.curRate = PlaybackSpeed.Speed_Forward_0_75_X // 0.75倍速播放
}).margin(5)
Button('rate 1').onClick(() => {
this.curRate = PlaybackSpeed.Speed_Forward_1_00_X // 原倍速播放
}).margin(5)
Button('rate 2').onClick(() => {
this.curRate = PlaybackSpeed.Speed_Forward_2_00_X // 2倍速播放
}).margin(5)
}
}
}
}
您好,我写了一个从别的页面跳转到该页面,为啥跳转不过去,会报错。但是单独可以打开这个页面。
main_pages.json有配置页面名称吗?
配置了,但是报错:Error message: ObservedPropertySimple value must not be an object
Stacktrace:
at ObservedPropertySimplePU (/mnt/disk/jenkins/ci/workspace/chipset_pipeline_release/china_compile/component_code/foundation/arkui/ace_engine/frameworks/bridge/declarative_frontend/engine/stateMgmt.js:3043:3043)
at VideoCreateComponent (entry/src/main/ets/pages/testPage.ets:8:26)
@State videoSrc: string = "[http://vfx.mtime.cn/Video/2017/03/31/mp4/170331093811717750.mp4](http://vfx.mtime.cn/Video/2017/03/31/mp4/170331093811717750.mp4)"
at func_main_0 (entry/src/main/ets/pages/testPage.ets:334:14)
针对“HarmonyOS 鸿蒙Next video 控件无法播放网络视频”的问题,可能的原因及解决方法如下:
-
网络权限问题:
- 确保应用已正确申请并获得了网络访问权限,包括Wi-Fi和移动数据网络权限。
-
视频地址问题:
- 检查视频URL是否正确,确保URL指向的视频资源是可访问的。
- 验证视频服务器是否支持CORS(跨源资源共享),如果不支持,可能导致鸿蒙视频控件无法加载视频。
-
视频格式支持:
- 确认视频格式是否被鸿蒙视频控件支持。如果视频格式不被支持,控件可能无法正确播放。
-
控件配置问题:
- 检查视频控件的配置,确保已正确设置视频源、播放模式等参数。
-
系统或应用版本问题:
- 确保鸿蒙系统版本和应用的版本兼容,且均为最新版本。旧版本可能存在已知bug,影响视频播放功能。
-
日志分析:
- 查看应用日志,分析是否有关于视频播放的错误信息,以便进一步定位问题。
如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html 。客服人员将为您提供更专业的帮助。