AudioPlaybackQueueItem.java revision 67ae6bc83cf2b30b0c61b9ebba5fed7a0038549c
18d1fc2403b8277e68d7816b2bbf05464a4c7a58aNarayan Kamath/* 28d1fc2403b8277e68d7816b2bbf05464a4c7a58aNarayan Kamath * Copyright (C) 2011 The Android Open Source Project 38d1fc2403b8277e68d7816b2bbf05464a4c7a58aNarayan Kamath * 48d1fc2403b8277e68d7816b2bbf05464a4c7a58aNarayan Kamath * Licensed under the Apache License, Version 2.0 (the "License"); you may not 58d1fc2403b8277e68d7816b2bbf05464a4c7a58aNarayan Kamath * use this file except in compliance with the License. You may obtain a copy of 68d1fc2403b8277e68d7816b2bbf05464a4c7a58aNarayan Kamath * the License at 78d1fc2403b8277e68d7816b2bbf05464a4c7a58aNarayan Kamath * 88d1fc2403b8277e68d7816b2bbf05464a4c7a58aNarayan Kamath * http://www.apache.org/licenses/LICENSE-2.0 98d1fc2403b8277e68d7816b2bbf05464a4c7a58aNarayan Kamath * 108d1fc2403b8277e68d7816b2bbf05464a4c7a58aNarayan Kamath * Unless required by applicable law or agreed to in writing, software 118d1fc2403b8277e68d7816b2bbf05464a4c7a58aNarayan Kamath * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 128d1fc2403b8277e68d7816b2bbf05464a4c7a58aNarayan Kamath * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 138d1fc2403b8277e68d7816b2bbf05464a4c7a58aNarayan Kamath * License for the specific language governing permissions and limitations under 148d1fc2403b8277e68d7816b2bbf05464a4c7a58aNarayan Kamath * the License. 158d1fc2403b8277e68d7816b2bbf05464a4c7a58aNarayan Kamath */ 168d1fc2403b8277e68d7816b2bbf05464a4c7a58aNarayan Kamathpackage android.speech.tts; 178d1fc2403b8277e68d7816b2bbf05464a4c7a58aNarayan Kamath 18754c72ed9e8e83e5a913aa7552fc2e1b1b5277e0Narayan Kamathimport android.speech.tts.TextToSpeechService.UtteranceProgressDispatcher; 1967ae6bc83cf2b30b0c61b9ebba5fed7a0038549cNarayan Kamathimport android.util.Log; 208d1fc2403b8277e68d7816b2bbf05464a4c7a58aNarayan Kamath 2167ae6bc83cf2b30b0c61b9ebba5fed7a0038549cNarayan Kamathclass AudioPlaybackQueueItem extends PlaybackQueueItem { 228d1fc2403b8277e68d7816b2bbf05464a4c7a58aNarayan Kamath private final BlockingMediaPlayer mPlayer; 238d1fc2403b8277e68d7816b2bbf05464a4c7a58aNarayan Kamath 2467ae6bc83cf2b30b0c61b9ebba5fed7a0038549cNarayan Kamath AudioPlaybackQueueItem(UtteranceProgressDispatcher dispatcher, 25492b7f0d51f53164aa6eb974cd7ab6a7889af677Narayan Kamath Object callerIdentity, BlockingMediaPlayer player) { 26492b7f0d51f53164aa6eb974cd7ab6a7889af677Narayan Kamath super(dispatcher, callerIdentity); 278d1fc2403b8277e68d7816b2bbf05464a4c7a58aNarayan Kamath mPlayer = player; 288d1fc2403b8277e68d7816b2bbf05464a4c7a58aNarayan Kamath } 2967ae6bc83cf2b30b0c61b9ebba5fed7a0038549cNarayan Kamath @Override 3067ae6bc83cf2b30b0c61b9ebba5fed7a0038549cNarayan Kamath public void run() { 3167ae6bc83cf2b30b0c61b9ebba5fed7a0038549cNarayan Kamath getDispatcher().dispatchOnStart(); 3267ae6bc83cf2b30b0c61b9ebba5fed7a0038549cNarayan Kamath // TODO: This can be avoided. Will be fixed later in this CL. 3367ae6bc83cf2b30b0c61b9ebba5fed7a0038549cNarayan Kamath mPlayer.startAndWait(); 3467ae6bc83cf2b30b0c61b9ebba5fed7a0038549cNarayan Kamath getDispatcher().dispatchOnDone(); 358d1fc2403b8277e68d7816b2bbf05464a4c7a58aNarayan Kamath } 368d1fc2403b8277e68d7816b2bbf05464a4c7a58aNarayan Kamath 378d1fc2403b8277e68d7816b2bbf05464a4c7a58aNarayan Kamath @Override 3867ae6bc83cf2b30b0c61b9ebba5fed7a0038549cNarayan Kamath void stop(boolean isError) { 3967ae6bc83cf2b30b0c61b9ebba5fed7a0038549cNarayan Kamath mPlayer.stop(); 408d1fc2403b8277e68d7816b2bbf05464a4c7a58aNarayan Kamath } 418d1fc2403b8277e68d7816b2bbf05464a4c7a58aNarayan Kamath} 42