I think it's going to be difficult finding a single thing that does all what you ask. You'll probably have to split the upload and the view functionality. After the upload finishes, determine the file type and then ajax-return some kind of preview-url to load.
You'll probably even end up with different viewers that you'll have to support (one for pdf, one for audio, etc). It's highly unlikely that there is a single previewer out there than can handle all formats you mentioned.