The problem is not the HDMI cable. It just transmits whatever it's hooked up to says to send. The best way to do this (which may cost you more) is to run all your devices through an A/V receiver, and let it handle all your devices. Plug them into the receiver and plug it into the HDMI jack on the TV. The sound from all your various sources will be preserved, plus you'll gain the benefits of surround, etc.

If you just want the HDMI switching and do not care about the audio receiver stuff, then get a dedicated multimedia source switcher, with HDMI pass-thru.