The 1 MB size limit per Block is for the Bitcoin's blockchain. In Ethereum, there is theoretically no limit for the block size. However, blockchain is not meant for data storage and storing large documents will be very expensive. Here are some instances where people hacked into the Bitcoin Blockchain and stored some unexpected data. You would have to compress and store the doc/pdf/audio in Hexadecimal format.
That said, many blockchain-like solutions designed just to store data were developed recently. STORJ seems to be famous and well developed. Filecoin is another such solution which is yet to materialize. Enigma is one more initiative which is being developed in the MIT Media Lab.
Like you mentioned, blockchain might be used to maintain a Distributed Hash Table(DHT) which contains hashes of the data files stored off-chain. This is to ensure integrity of data.
These are the costs for storing data on Ethereum public blockchain as of June 7th, 2016:
Storage costs:
This is Solidity code for creating a contract with 1 Kilo Byte of data.
contract Storage { byte[1024] data; function Storage() { for (uint i = 0; i < 1024; i++) { data[i] = 'A';}}}
If we run this code in the online compiler, we get an estimated transaction cost of 5925085 gas.
The gas price today is 23731285772 Wei (10^18 Wei = 1 Ether = $15).
So, storing 1 Kilo Byte of data in the public blockchain, as per conversion rates on June 7th is approximately $2.11.
Reading costs:
Similarly, reading 1 Kilo Byte of data costs 284396 gas, which is approximately $0.1.
This price might increase if there is an increase in the Gas value or Ether value.
More information about gas prices can be found at “Appendix G. Fee Schedule” of the Ethereum yellow paper.