diff --git a/src/com/android/fmradio/FmService.java b/src/com/android/fmradio/FmService.java
index b3d7715..973dceb 100644
--- a/src/com/android/fmradio/FmService.java
+++ b/src/com/android/fmradio/FmService.java
@@ -396,7 +396,7 @@
            mAudioRecord.release();
            mAudioRecord = null;
        }
-       if (mAudioTrack != null) {
+       if (mAudioTrack != null && mAudioTrack.getState() == AudioTrack.STATE_INITIALIZED) {
            mAudioTrack.stop();
            mAudioTrack.release();
            mAudioTrack = null;
@@ -448,7 +448,8 @@
     }
 
     private void startAudioTrack() {
-        if (mAudioTrack.getPlayState() == AudioTrack.PLAYSTATE_STOPPED) {
+        if (mAudioTrack.getState() == AudioTrack.STATE_INITIALIZED
+                && mAudioTrack.getPlayState() == AudioTrack.PLAYSTATE_STOPPED) {
             ArrayList<AudioPatch> patches = new ArrayList<AudioPatch>();
             mAudioManager.listAudioPatches(patches);
             mAudioTrack.play();
@@ -477,11 +478,13 @@
                         // Speaker mode or BT a2dp mode will come here and keep reading and writing.
                         // If we want FM sound output from speaker or BT a2dp, we must record data
                         // to AudioRecrd and write data to AudioTrack.
-                        if (mAudioRecord.getRecordingState() == AudioRecord.RECORDSTATE_STOPPED) {
+                        if (mAudioRecord.getRecordingState() == AudioRecord.RECORDSTATE_STOPPED
+                                && mAudioRecord.getState() == AudioRecord.STATE_INITIALIZED) {
                             mAudioRecord.startRecording();
                         }
 
-                        if (mAudioTrack.getPlayState() == AudioTrack.PLAYSTATE_STOPPED) {
+                        if (mAudioTrack.getPlayState() == AudioTrack.PLAYSTATE_STOPPED
+                                && mAudioTrack.getState() == AudioTrack.STATE_INITIALIZED) {
                             mAudioTrack.play();
                         }
                         int size = mAudioRecord.read(buffer, 0, RECORD_BUF_SIZE);
