I am attempting this myself right now. Here is an example I found that shows how to hook up a bloc to a Stream and update the UI in response to data from the Stream.
https://github.com/felangel/bloc/tree/master/examples/flutter_bloc_with_stream
Once I look into the details and figure out how to combine a StreamBuilder (audio_service state solution) with the Bloc state solution, I'll update this reply.