HarmonyOS av\_player新增支持本地音视频文件播放以及播放帧缓冲回调?

1、希望支持本地音视频资源的播放,目前仅支持在线的音视频播放;

2、希望在播放音视频过程中,将每播放一帧视频缓存数据回调,目前没有该回调。

阅读 429
1 个回答

1、OH\_AVPlayer\_SetURLSource支持网络和静态路径,比如:

const char *path = "/vendor/test/123.mp3";
int32_t ret1 = OH_AVPlayer_SetURLSource(audio_player_, path);

2、rawfile、沙箱下的用OH\_AVPlayer\_SetFDSource接口实现,比如:

async a(){
    // 把音频文件写到沙箱路径中
    const resourceManager = getContext(this).resourceManager
    const imageArray = await resourceManager.getMediaContent($r('app.media.123'));
    let path: string = getContext().filesDir + "/123.mp3";
    console.log("yuv_path is:" + path);
    let file = fs.openSync(path, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
    fs.write(file.fd, imageArray.buffer).then((writeLen) => {
        console.info("write data to file succeed and size is:" + writeLen);
        fs.closeSync(file);
    }).catch((err: BusinessError) => {
        console.info("write data to file failed with error message: " + err.message + ", error code: " + err.code);
    });
    let fd = file.fd;
    let off = fs.lseek(file.fd, 5, fs.WhenceType.SEEK_SET)
    testNapi.init(fd, off);
}
int32_t ret1 = OH_AVPlayer_SetFDSource(player, fd, off, -1);          //注:-1代表长度
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进