without looking at your project in detail it is hard to tell what could be wrong - but if
aplay works fine it is almost certain to have to do with the user context.
Note that above post specifically was resolved by adding user
mpd to group
gpio, not user
mopidy. Whichever is right (including, possibly another suspect) will depend on your use case.