It's all a question of bandwidth. Your iPhone needs a wifi connection to back up to the cloud. An airplane "black box", and all the information they store, would need a similar data connection.
In flight, that connection can only come from a satellite. At any given time, there are 100's of thousands of aircraft in the sky. There aren't enough satellites, satellite channels, or satellite bandwidth to handle that amount of simultaneous upload.
That's assuming you wanted to stream everything the boxes record to the satellite.
In practice all that needs to be sent to satellite/cloud are a limited subset of the data recorded in the recorder.
All that needs be streamed to satellite is:
latitude, longitude, speed, time, and flight number.
The recorder could send a data packet every 15 minutes containing only those data parameters and using that the plane and recorder could be found and the rest of the data retrieved from the black boxes.
latitude -data type float ( 4 bytes )
longitude -data type float ( 4 bytes )
speed -data type int ( 2 bytes )
time -data type signed int ( 4 bytes )
flight number - data type int ( 2 bytes )
Using those parameters each plane would only be sending 16 bytes every 15 minutes, 64 bytes per hour.
That's easily doable. Those engines are already probably sending back more diagnostic info than that already.
So, China media is claiming that a chinese search ship has detected pings on the same frequency as the ping beacons of the recorders.
I'm skeptical.