Many airlines have done this already. It's much cheaper for the airline to provide a wifi network within the airplane that passenger devices can use than to run a screen and the corresponding hardware to each seat. The screens and all the cabling required to make them work have a significant cost in weight, space, maintenance, and complexity -- all things which airlines hate because it costs them money. A wifi access point capable enough to stream video to a couple hundred devices and a small server with enough storage to store music and TV programs and movies can probably be done with less than 20 kilos of additional weight, so this is a big gain for the airlines.
When you combine that with either a satellite or a terrestrial receiver for internet type data, you have a relatively complete system for people to use smartphones, tablets, computers, etc.
How much the airlines charge for this, or whether they offer some of the services for free becomes more of a business / pricing decision than a technical one. For any local (meaning "stored on the airplane") content, the onboard wifi is more than enough bandwidth for the users. For anything that has to communicate via the satellite or terrestrial data link, the cost to the airline will almost always be high enough that they will want to pass those costs on to the passengers.
As of this writing (Sept 2015) I've been on a number of United Airlines flights where the local cached content (streaming movies and TV shows) are free for people to use, and you can also get to a selected set of webpages which are locally generated and show things like the aircraft location, the ground speed, the estimated time of arrival, etc.