diff options
| -rwxr-xr-x[-rw-r--r--] | media/libmediaplayerservice/MediaPlayerService.cpp | 13 | 
1 files changed, 11 insertions, 2 deletions
diff --git a/media/libmediaplayerservice/MediaPlayerService.cpp b/media/libmediaplayerservice/MediaPlayerService.cpp index dbe8b31..25839df 100644..100755 --- a/media/libmediaplayerservice/MediaPlayerService.cpp +++ b/media/libmediaplayerservice/MediaPlayerService.cpp @@ -1249,8 +1249,17 @@ void MediaPlayerService::Client::notify(          if (msg == MEDIA_PLAYBACK_COMPLETE && client->mNextClient != NULL) {              if (client->mAudioOutput != NULL)                  client->mAudioOutput->switchToNextOutput(); -            client->mNextClient->start(); -            client->mNextClient->mClient->notify(MEDIA_INFO, MEDIA_INFO_STARTED_AS_NEXT, 0, obj); +            ALOGD("gapless:current track played back"); +            ALOGD("gapless:try to do a gapless switch to next track"); +            status_t ret; +            ret = client->mNextClient->start(); +            if (ret == NO_ERROR) { +                client->mNextClient->mClient->notify(MEDIA_INFO, +                        MEDIA_INFO_STARTED_AS_NEXT, 0, obj); +            } else { +                client->mClient->notify(MEDIA_ERROR, MEDIA_ERROR_UNKNOWN , 0, obj); +                ALOGW("gapless:start playback for next track failed"); +            }          }      }  | 
