Try to play audio and simultaniously drive WS2812 LEDs with an ESP8266

I'm trying to play audio and simultaniously drive WS2812 LEDs with an ESP8266.

My first, very naive, attempt was to save a 8bit 8000Hz WAV file to the ESPs internal filesystem and use an interrupt every 1/8000s to write the next byte to an analog output pin and directly drive a speaker with that pin. In the programs main loop I tried driving the LEDs: Sound was terrible and the LEDs were doing all sort of crazy things, as the interrupt probably messes up driving the LEDs.

I assume I am facing a couple of problems I need to solve but I'm by far too unexperienced, so I need your help:

  • I probably need a proper DAC to have fair sound quality?
  • I need some kind of sound data buffering, so the ESP can exclusively drive the LEDs, then send some audio data to the DAC, then LEDs again – using interrupts is not a good idea when doing time critical stuff?
  • The ESP8266 supports I2S, I'm not sure if that would solve above problems? Do I2S DACs have an internal buffer? I'm assuming, as the protocol has it's own clock. Can the data transfer be paused while driving LEDs? Who generates the clock signal?
  • I don't know whether I need an amplifier to drive a speaker? Would be nice if the volume is above whispering, which it was in my first setup. Is there a way to have a simple headphone jack, so I could connect a (usb powered) speaker for e.g. mobilephones?
  • Would be nice if the DAC would run with 3.3V so it could use the ESP to power it
  • DIP would also be nice so it could be used right on a breadboard

I had a look around for Audio DACs, would the PCM5101PW(http://www.kynix.com/Parts/23267/PCM5101PW.html) be suitable (apart from not being DIP)? Any other ideas?

SolidworksElectrical