One of the least painful methods is the DFMiniPlayer. It has an SD card socket and communicates by UART serial to select what to play. Cheap and easy. See this very long community thread.
There currently isn't a driver for the P2/Photon 2, but it should be possible to use I2S (S as in sound, not I2C). This is the best option if you need to generate sounds in software, as opposed to just playing pre-recorded sounds, but also the software doesn't exist yet. You could look at the MicrophonePDM library. It's PDM not I2S but it does show how to access the audio peripheral on the RTL872x from user firmware.
Using a DAC would work, but is not the best solution for audio because of the amount of data you'll need to stream to it over I2C or SPI. It's just not a very efficient way to do it.