diff --git a/webrtc/modules/audio_device/ios/audio_device_ios.h b/webrtc/modules/audio_device/ios/audio_device_ios.h
index efe2558..5aa3b70 100644
--- a/webrtc/modules/audio_device/ios/audio_device_ios.h
+++ b/webrtc/modules/audio_device/ios/audio_device_ios.h
@@ -54,10 +54,10 @@
   bool Initialized() const override { return initialized_; }
 
   int32_t InitPlayout() override;
-  bool PlayoutIsInitialized() const override { return play_is_initialized_; }
+  bool PlayoutIsInitialized() const override { return audio_is_initialized_; }
 
   int32_t InitRecording() override;
-  bool RecordingIsInitialized() const override { return rec_is_initialized_; }
+  bool RecordingIsInitialized() const override { return audio_is_initialized_; }
 
   int32_t StartPlayout() override;
   int32_t StopPlayout() override;
@@ -280,11 +280,9 @@
   // Set to true after successful call to Init(), false otherwise.
   bool initialized_;
 
-  // Set to true after successful call to InitRecording(), false otherwise.
-  bool rec_is_initialized_;
-
-  // Set to true after successful call to InitPlayout(), false otherwise.
-  bool play_is_initialized_;
+  // Set to true after successful call to InitRecording() or InitPlayout(),
+  // false otherwise.
+  bool audio_is_initialized_;
 
   // Set to true if audio session is interrupted, false otherwise.
   bool is_interrupted_;
diff --git a/webrtc/modules/audio_device/ios/audio_device_ios.mm b/webrtc/modules/audio_device/ios/audio_device_ios.mm
index 3a745a4b..8f562a7 100644
--- a/webrtc/modules/audio_device/ios/audio_device_ios.mm
+++ b/webrtc/modules/audio_device/ios/audio_device_ios.mm
@@ -97,8 +97,7 @@
       recording_(0),
       playing_(0),
       initialized_(false),
-      rec_is_initialized_(false),
-      play_is_initialized_(false),
+      audio_is_initialized_(false),
       is_interrupted_(false),
       has_configured_session_(false) {
   LOGI() << "ctor" << ios::GetCurrentThreadDescription();
@@ -165,15 +164,15 @@
   LOGI() << "InitPlayout";
   RTC_DCHECK(thread_checker_.CalledOnValidThread());
   RTC_DCHECK(initialized_);
-  RTC_DCHECK(!play_is_initialized_);
+  RTC_DCHECK(!audio_is_initialized_);
   RTC_DCHECK(!playing_);
-  if (!rec_is_initialized_) {
+  if (!audio_is_initialized_) {
     if (!InitPlayOrRecord()) {
       LOG_F(LS_ERROR) << "InitPlayOrRecord failed for InitPlayout!";
       return -1;
     }
   }
-  play_is_initialized_ = true;
+  audio_is_initialized_ = true;
   return 0;
 }
 
@@ -181,22 +180,22 @@
   LOGI() << "InitRecording";
   RTC_DCHECK(thread_checker_.CalledOnValidThread());
   RTC_DCHECK(initialized_);
-  RTC_DCHECK(!rec_is_initialized_);
+  RTC_DCHECK(!audio_is_initialized_);
   RTC_DCHECK(!recording_);
-  if (!play_is_initialized_) {
+  if (!audio_is_initialized_) {
     if (!InitPlayOrRecord()) {
       LOG_F(LS_ERROR) << "InitPlayOrRecord failed for InitRecording!";
       return -1;
     }
   }
-  rec_is_initialized_ = true;
+  audio_is_initialized_ = true;
   return 0;
 }
 
 int32_t AudioDeviceIOS::StartPlayout() {
   LOGI() << "StartPlayout";
   RTC_DCHECK(thread_checker_.CalledOnValidThread());
-  RTC_DCHECK(play_is_initialized_);
+  RTC_DCHECK(audio_is_initialized_);
   RTC_DCHECK(!playing_);
   RTC_DCHECK(audio_unit_);
   if (fine_audio_buffer_) {
@@ -217,17 +216,13 @@
 int32_t AudioDeviceIOS::StopPlayout() {
   LOGI() << "StopPlayout";
   RTC_DCHECK(thread_checker_.CalledOnValidThread());
-  if (!play_is_initialized_) {
-    return 0;
-  }
-  if (!playing_) {
-    play_is_initialized_ = false;
+  if (!audio_is_initialized_ || !playing_) {
     return 0;
   }
   if (!recording_) {
     ShutdownPlayOrRecord();
+    audio_is_initialized_ = false;
   }
-  play_is_initialized_ = false;
   rtc::AtomicOps::ReleaseStore(&playing_, 0);
   return 0;
 }
@@ -235,7 +230,7 @@
 int32_t AudioDeviceIOS::StartRecording() {
   LOGI() << "StartRecording";
   RTC_DCHECK(thread_checker_.CalledOnValidThread());
-  RTC_DCHECK(rec_is_initialized_);
+  RTC_DCHECK(audio_is_initialized_);
   RTC_DCHECK(!recording_);
   RTC_DCHECK(audio_unit_);
   if (fine_audio_buffer_) {
@@ -256,17 +251,13 @@
 int32_t AudioDeviceIOS::StopRecording() {
   LOGI() << "StopRecording";
   RTC_DCHECK(thread_checker_.CalledOnValidThread());
-  if (!rec_is_initialized_) {
-    return 0;
-  }
-  if (!recording_) {
-    rec_is_initialized_ = false;
+  if (!audio_is_initialized_ || !recording_) {
     return 0;
   }
   if (!playing_) {
     ShutdownPlayOrRecord();
+    audio_is_initialized_ = false;
   }
-  rec_is_initialized_ = false;
   rtc::AtomicOps::ReleaseStore(&recording_, 0);
   return 0;
 }
@@ -689,7 +680,7 @@
 
   // If we're not initialized we don't need to do anything. Audio unit will
   // be initialized on initialization.
-  if (!rec_is_initialized_ && !play_is_initialized_)
+  if (!audio_is_initialized_)
     return;
 
   // If we're initialized, we must have an audio unit.
