当前位置:首页 > 芯闻号 > 充电吧
[导读]刚刚接触了一下要在安卓上面编写媒体音频软件,但是看了很多其他的文章,都是建议使用QML去写MediaPlayer。 本人是用QWidgetC++来实现的,一个简单的测试代码:void androidF

刚刚接触了一下要在安卓上面编写媒体音频软件,但是看了很多其他的文章,都是建议使用QML去写MediaPlayer。 本人是用QWidgetC++来实现的,一个简单的测试代码:

void androidFile::showplay()
{
 
    QAndroidJniObject music = QAndroidJniObject::getStaticObjectField(
                "android/os/Environment",
                "DIRECTORY_MUSIC",
                "Ljava/lang/String;"
                );
    QAndroidJniObject musicDir = QAndroidJniObject::callStaticObjectMethod(
                   "android/os/Environment",
                   "getExternalStoragePublicDirectory",
                   "(Ljava/lang/String;)Ljava/io/File;",
                   music.object()
                   );
      musicDir_ = musicDir.toString();
       

      QMediaPlayer  * qtaudioPlayer = new QMediaPlayer;
       musicDir_ = "file://"+musicDir_ + "/123.mp3";
       qDebug()<<"music" <<musicDir_;
       qtaudioPlayer->setMedia(QUrl(musicDir_));
       qDebug()<<"musicQul = "<<QUrl(musicDir_);
       qtaudioPlayer->play();
//       QSoundEffect * Player = new QSoundEffect;
//       Player->setSource(QUrl(musicDir_));
//       Player->play();


}

上面的musicDir是获取到安卓的音乐相关的目录,可以自己用QFlieInfo这个类来搜索相关的音频文件可以实现一个简单的播放器,因为是测试所以也没有写那么详细,主要看能否跑通。 代码中使用setMedia来设置播放的文件路径,这里只是单一的测试音频,视频目前没有测试。设置好路径之后。调用play就可以播放了。

还有很多的方法可以获取音频中包含的信息,可以参考QT的帮助

一些常用的提供的对外接口有

pause()  //暂停

stop()//停止

     在使用QMediaPlayer时,发现路径必须要在前面加上“file://”,否则播放失败。

原先也测试过用QSoundEffect这个类,发现好像只能播放Wav的格式,MP3的格式报错。目前使用QMediaPlayer在安卓上面播放正常。 具体的使用后续会完善更新。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭