本文旨在对qml的mediaplayer和android的mediaplayer是怎样交互的,qml mediaplayer的play、pause等函数是这样向下传递的,和android mediaplayer的回调函数是怎样响应到qml的槽函数的进行简要的分析和梳理,以便于对这块的内容有一个大概的了解,并清楚原理。建议下载qt5.15的源码,用source insight阅读。
1、首先我们在QML中使用MediaPlayer组件,并设置了相关属性,增加了play、pause方法,覆盖了onplaying、onStatusChanged。如下代码:
MediaPlayer {
id: player
source: url
autoLoad: true
autoPlay: false
loops: 0
volume: ivolume
onPlaying: {
console.log("MediaPlayer onPlaying")
}
onError: {
if (MediaPlayer.NoError != error) {
console.log("[qmlvideo] error " + player.error
+ " errorString " + player.errorString)
}
}
onStatusChanged: {
console.log("onStatus