status_t FFMPlayer::start()
{
int status = getCurrentStatus();
if (status == PLAYER_PREPARED) {
if (mMessageQ.get() != NULL) {
enqueueMessage(new MessageStart(NULL)); //创建类型为CMD_START的meg,然后将该meg放入mQueue
return OK;
}
} else { //if(status == PLAYER_PAUSED)
if(!isNetworkProtocol() && isPlayerEndOfStream() && checkConsumeAll()) {
ALOGD("resume: end of stream seekto 0");
modifyFlags(AT_EOS, CLEAR);
setPlayerEndOfStream(false);
doSeekto(0, true);
}
recordResumeTime();
return resume();//创建类型为CMD_RESUME的meg,然后将该meg放入mQueue
}
return UNKNOWN_ERROR;
}
MessageStart(complete_cb cb):RkMessage(CMD_START,cb) {};
RkMessage(int t,complete_cb cb,void* userdata=0):mType(t),mCb(cb),mUserData(userdata),mWhenUs(0) {}
status_t FFMPlayer::doStart()
{
if (getCurrentStatus() == PLAYER_PREPARED) {
setCurrentStatus(PLAY
ffplayer——FFMPlayer::start() FFMPlayer::stop()
最新推荐文章于 2024-08-25 07:55:43 发布
本文详细探讨了FFMPlayer的使用,重点在于`FFMPlayer::start()`和`FFMPlayer::stop()`两个关键函数。通过实例解析,阐述了如何启动和停止FFMPlayer的播放操作,帮助开发者更好地理解和掌握FFMPlayer的控制流程。
摘要由CSDN通过智能技术生成