读取文件

    科技2022-08-04  127

    void WlFFmpeg::start() { //因为在加载中初始化了audio,所以这里有个检查 if (audio == NULL) { return; } //播放,设置opensl audio->play(); //读取数据,把数据从文件写入队列 while (playstatus != NULL && !playstatus->exit) { AVPacket *avPacket = av_packet_alloc(); //这里读取文件 if (av_read_frame(pFormatCtx, avPacket) == 0) { if (avPacket->stream_index == audio->streamIndex) { //写入队列 audio->queue->putAvpacket(avPacket); } else { av_packet_free(&avPacket); av_free(avPacket); } } else { av_packet_free(&avPacket); av_free(avPacket); while (playstatus != NULL && !playstatus->exit) { if (audio->queue->getQueueSize() > 0) { continue; } else { playstatus->exit = true; break; } } break; } } exit = true; if (LOG_DEBUG) { LOGD("解码完成"); } }

     

    Processed: 0.013, SQL: 8