Skip to content

Commit 19a1f85

Browse files
committed
修改暂停后,再次播放时没有closeMute的问题
1 parent 40995a0 commit 19a1f85

File tree

2 files changed

+24
-16
lines changed

2 files changed

+24
-16
lines changed

apps/player/playinglist.cpp

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ static const char *PlayerLock = "playerlock";
3434
mMax = 0;
3535
playMode = 0;
3636
mplaylist = NULL;
37-
inPause = 0;
37+
inPause = 0;//init
3838
mParticleplayer = NULL;
3939
isWakeLock = 0;
4040
mOrderBy = -1;
@@ -248,6 +248,20 @@ static const char *PlayerLock = "playerlock";
248248
mPlayingPath = "null";
249249
mCueStart = 0;
250250
}
251+
void Playinglist::setInPauseState(int state){
252+
if(inPause!=state){
253+
inPause = state;
254+
if(state){
255+
if(gPlayer.mBoardType == 1)
256+
gPlayer.openWm8740Mute();
257+
}else{
258+
if(gPlayer.mBoardType == 1){
259+
Thread::sleep(200);
260+
gPlayer.closeWm8740Mute();
261+
}
262+
}
263+
}
264+
}
251265
void Playinglist::mediaInfoCpy(int des,mediainfo *src){
252266
//log_i("enter src=0x%x",src);
253267
memset(&mplaylist[des],0,sizeof(mediainfo));
@@ -507,9 +521,7 @@ static const char *PlayerLock = "playerlock";
507521

508522

509523
if(inPause){
510-
inPause = 0;
511-
if(gPlayer.mBoardType == 1)
512-
gPlayer.closeWm8740Mute();
524+
setInPauseState(0);
513525
}
514526

515527
if(needGapless&&mGapless>0&&mParticleplayer->setNextSongForGapless(playPath)){
@@ -717,23 +729,18 @@ static const char *PlayerLock = "playerlock";
717729

718730
mParticleplayer->pause();
719731

720-
if(gPlayer.mBoardType == 1)
721-
gPlayer.openWm8740Mute();
732+
setInPauseState(1);
722733

723734
releaseWakeLock();
724-
inPause = 1;
725735
ret = 2;
726736
}else if(inPause == 1){
727737
log_i("mParticleplayer inPause");
728738
mParticleplayer->start();
729739

730-
if(gPlayer.mBoardType == 1){
731-
Thread::sleep(200);
732-
gPlayer.closeWm8740Mute();
733-
}
734-
740+
setInPauseState(0);
741+
735742
setWakeLock();
736-
inPause = 0;
743+
737744
ret = 3;
738745
}else{
739746
log_i("mParticleplayer startPlay");
@@ -808,7 +815,7 @@ static const char *PlayerLock = "playerlock";
808815
void Playinglist::setPlayPause(){
809816
if(mParticleplayer!=NULL&&mParticleplayer->isPlaying()){
810817
mParticleplayer->pause();
811-
inPause = 1;
818+
setInPauseState(1);
812819
}
813820
}
814821
void Playinglist::setWakeLock(){
@@ -863,7 +870,7 @@ static const char *PlayerLock = "playerlock";
863870
if(mParticleplayer != NULL){
864871
mParticleplayer->stop();
865872
}
866-
inPause = 0;
873+
setInPauseState(0);
867874
releaseWakeLock();
868875
}
869876
void Playinglist::clearAll(){

apps/player/playinglist.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ namespace mango
8383
void seekTo(int n);
8484
void stopPlayer();
8585
void stopForSdcardEject();
86-
void setPauseToStart(){ if(inPause&&mParticleplayer != NULL){mParticleplayer->start();inPause = 0;} }
86+
void setPauseToStart(){ if(inPause&&mParticleplayer != NULL){mParticleplayer->start();setInPauseState(0);} }
8787
void setPlayPause();
8888
void clearAll();
8989
void fastForward();
@@ -96,6 +96,7 @@ namespace mango
9696
//char* mstrcpy(char *str,char *arg);
9797
static void playerCallback(void* calldata, int evnet, int param0, int param1);
9898
static unsigned int CloseMuteRunnig(void *parameter);
99+
void setInPauseState(int state);
99100
};
100101
extern Playinglist *mPlayinglist;
101102

0 commit comments

Comments
 (0)