openharmony hi3518开发板实现扫码后添加声音 原创

我曾是少年_
发布于 2021-9-30 10:25
浏览
3收藏

前期准备

    1、参考openharmony hi3518开发板实现扫码这篇文章成功识别出二维码

    2、准备一个音频文件(MP4格式)

配置

    1、配置BUILD.gn,deps中加入
    "//foundation/multimedia/media_lite/frameworks/player_lite:player_lite",
    "//third_party/bounds_checking_function:libsec_shared",

    2、camera_sample.cpp文件里加入头文件player.h

添加代码

    1、camera_sample.cpp文件里添加播放声音的代码

void Beep(){
       player_ = new Player(); 
       std::shared_ptr<PlayerCallback> callback = std::make_shared<TestPlayerCallback>();
       player_->SetPlayerCallback(callback);//设置player回调 
       std::string uri("beep.mp4");//此处filePath为本地文件路径 
       Source source(uri);//保存uri到source实例 
       player_->SetSource(source);//将source设置到player 
       player_->Prepare();//准备播放 
       Surface *surface = Surface::CreateSurface();
       player_->SetVideoSurface(surface);//设置播放窗口
       player_->Play();//开始播放
}

    2、添加回调并在完成播放时释放资源

class TestPlayerCallback : public PlayerCallback{
    void OnPlaybackComplete() override 
    { 
        //此处实现代码用于处理文件播放完成的事件 
        cout <<"PlayerCallback OnPlaybackComplete" << endl;
        
        player_->Stop(); //停止播放
        player_->Release();//释放资源
    } 
    void OnError(int32_t errorType, int32_t errorCode) override 
    { 
        //此处实现代码处理错误事件 
        cout <<"PlayerCallback OnError" << endl;
    } 
    void OnInfo(int type, int extra) override 
    { 
        //此处实现代码处理普通事件 
        cout <<"PlayerCallback OnInfo" << endl;
    } 
    void OnRewindToComplete() override 
    { 
        //此处实现代码处理进度控制完成的事件 
        cout <<"PlayerCallback OnRewindToComplete" << endl;
    } 
    void OnVideoSizeChanged(int width, int height) override
    {
        cout <<"PlayerCallback OnVideoSizeChanged" << endl;
    }
};

    3、在完成扫码时调用Beep()方法

cout << "end read_image...." << endl;
if(res == 0){
    Beep();
}

编译和运行

    1、执行命令编译hb build camera_lite

    2、运行camera_sample文件,如果成功识别出二维码就会听到mp4文件播放的声音

遇到的问题

    音频文件如果是MP3格式的话会播放失败

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
6
收藏 3
回复
举报
1条回复
按时间正序
/
按时间倒序
鸿联
鸿联

据说3.0支持mp3了

回复
2021-9-30 12:27:11
回复
    相关推荐