MediaPlugin producing unsupported audio file

I’m using Ionic 2.2.2 and every time I ‘record’ an audio file then try to play it, no sound comes out. When I open the file explorer and click the audio file it says it’s an unsupported format. I’ve tried changing the extension name. One note is the same code worked fine last night as far as I’m aware. I’ve restarted my phone and even re-built multiple times. Maybe I’m supposed to be using .release() somewhere? I’m not sure.

import { Component } from '@angular/core';
import { IonicPage, AlertController, ToastController, ViewController, NavParams } from 'ionic-angular';
import { Camera } from '@ionic-native/camera';
import { MediaPlugin, MediaObject } from '@ionic-native/media';

declare var cordova: any;

@IonicPage()
@Component({
  selector: 'page-complete-profile',
  templateUrl: 'complete-profile.html',
  providers: [Camera, MediaPlugin]
})
export class CompleteProfile {
  data: any = {};
  playing: boolean = false;
  recording: boolean = false;
  first_name: string;
  file: MediaObject;

  constructor(public alertCtrl: AlertController, public toastCtrl: ToastController, public viewCtrl: ViewController, public navParams: NavParams, public camera: Camera, public media: MediaPlugin) {
    this.first_name = this.navParams.get('first_name');

    this.media.create(cordova.file.externalRootDirectory + 'recording.wav')
      .then((file: MediaObject) => {
        this.file = file;
      });
  }

  select() {
    this.camera.getPicture({
      destinationType: this.camera.DestinationType.DATA_URL,
      sourceType: this.camera.PictureSourceType.PHOTOLIBRARY,
      allowEdit: true
    })
      .then((data) => {
        this.data.profile = 'data:image/png;base64,' + data;
      })
      .catch((err) => {
        this.alertCtrl.create({
          title: 'Error',
          subTitle: err,
          buttons: ['OK']
        }).present();
      });
  }

  record() {
    this.recording = !this.recording;

    if(this.recording === true) {
      this.file.startRecord();
    } else {
      this.file.stopRecord();
    }
  }

  play() {
    if(this.recording === true) return;

    this.playing = !this.playing;

    if(this.playing === true) {
      this.file.play();
    } else {
      this.file.pause();
    }
  }

  stop() {
    if(this.recording === true) return;
    this.file.stop();
  }

  save() {
    if(this.data.profile === undefined) return this.toastCtrl.create({
      message: 'Please upload a profile picture',
      duration: 2500,
      position: 'bottom'
    }).present();

    if(this.data.voice_pitch === undefined) return this.toastCtrl.create({
      message: 'Please select a valid voice pitch',
      duration: 2500,
      position: 'bottom'
    }).present();

    if(this.data.voice_fluidity === undefined) return this.toastCtrl.create({
      message: 'Please select a valid voice fluidity',
      duration: 2500,
      position: 'bottom'
    }).present();

    if(this.file.getDuration() < 1) return this.toastCtrl.create({
      message: 'Please create a demo recording',
      duration: 2500,
      position: 'bottom'
    }).present();

    this.viewCtrl.dismiss({picture: this.data.profile, voice_fluidity: this.data.voice_fluidity, voice_pitch: this.data.voice_pitch});
  }

  back() {
    this.file.release();
    this.viewCtrl.dismiss({canceled: true});
  }
}