《Qt for Android(12) —— QT for Android 多媒体播放器JNI交互原理和源码分析 | 寻找C站宝藏》

平嘉熙
2023-12-01

背景

  本文旨在对qml的mediaplayer和android的mediaplayer是怎样交互的,qml mediaplayer的play、pause等函数是这样向下传递的,和android mediaplayer的回调函数是怎样响应到qml的槽函数的进行简要的分析和梳理,以便于对这块的内容有一个大概的了解,并清楚原理。建议下载qt5.15的源码,用source insight阅读。

源码流程(QT端)

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
 类似资料: