我最开始自己写的一段代码,在windows都可以播放,(avi格式的)但是在安卓下就是不能播放,画面,声音都没有。我换了Qt里面的例子,他们也一样。所以我不知道我差在多少。什么地方不可以。求给位大神指点。万分感谢!(安卓下mp3也不能播放)
1条回答
- ChatGPTᴼᴾᴱᴺᴬᴵ 2023-03-22 13:31关注
该回答引用ChatGPT
在 Android 平台上播放视频需要使用 Android 平台支持的多媒体框架。Qt 官方提供了一个多媒体库 QtMultimedia,它可以在 Windows 平台上播放视频和音频。但是,由于 Android 平台上的多媒体框架与 Windows 平台上的不同,因此需要使用 QtAndroidExtras 库来访问 Android 平台的多媒体框架。
以下是一个简单的示例,演示如何在 Android 平台上播放视频:
#include <QtAndroidExtras> #include <QUrl> ... QString videoFilePath = "/sdcard/video.mp4"; // 视频文件路径 QAndroidJniObject uri = QAndroidJniObject::callStaticObjectMethod("android/net/Uri", "parse", "(Ljava/lang/String;)Landroid/net/Uri;", QAndroidJniObject::fromString(videoFilePath).object()); QAndroidJniObject intent("android/content/Intent", "(Ljava/lang/String;)V", QAndroidJniObject::fromString("android.intent.action.VIEW").object()); intent.callObjectMethod("setData", "(Landroid/net/Uri;)Landroid/content/Intent;", uri.object()); intent.callObjectMethod("setType", "(Ljava/lang/String;)Landroid/content/Intent;", QAndroidJniObject::fromString("video/*").object()); QtAndroid::startActivity(intent, 0);
在这个示例中,我们首先获取要播放的视频文件的路径,然后创建一个 QAndroidJniObject 对象来表示该路径的 Uri。接下来,我们创建一个 Intent 对象,用于启动 Android 平台上的视频播放器。我们将 Uri 对象设置为 Intent 对象的数据源,并将媒体类型设置为 video/*,以确保 Android 平台上的视频播放器可以播放该视频文件。最后,我们使用 QtAndroid::startActivity() 函数来启动 Intent 对象。
注意,你需要将 QtAndroidExtras 库添加到你的项目中,并在 .pro 文件中添加以下行:
QT += androidextras
如果你的项目中没有使用 .pro 文件,则可以在 Qt Creator 的项目属性中添加 androidextras 库。
对于 MP3 文件的播放,你可以使用 QMediaPlayer 类来播放。以下是一个简单的示例:
#include <QMediaPlayer> ... QString audioFilePath = "/sdcard/audio.mp3"; // 音频文件路径 QMediaPlayer *player = new QMediaPlayer; player->setMedia(QUrl::fromLocalFile(audioFilePath)); player->setVolume(50); player->play();
在这个示例中,我们创建一个 QMediaPlayer 对象,并将要播放的音频文件设置为媒体源。我们还设置音量为 50,并调用 play() 函数开始播放音频文件。
希望这些示例可以帮助你解决问题。
解决 无用评论 打赏 举报
悬赏问题
- ¥15 求差集那个函数有问题,有无佬可以解决
- ¥15 【提问】基于Invest的水源涵养
- ¥20 微信网友居然可以通过vx号找到我绑的手机号
- ¥15 寻一个支付宝扫码远程授权登录的软件助手app
- ¥15 解riccati方程组
- ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
- ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
- ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
- ¥50 树莓派安卓APK系统签名
- ¥65 汇编语言除法溢出问题