Best way to stream videos and music from my iPhone to my TV?
Well, this is one of those things where there's 101 ways to do it and it's just trial and error to see which works best for you. You could try wired connections using an HDMI cable  or composite AV from your iphone to your TV, or there's a variety of aftermarket apps that may work better for you. I've detailed some ideas below:

Connect With HDMI

You'll need to purchase an adaptor for this option.


Plug the adapter into your device’s 30-pin iPod connector.
Plug one end of an HDMI cable into the HDMI port of the adapter, and
the other end into an available HDMI port on your TV.
Switch your TV to the appropriate HDMI input. For earlier models
such as the iPhone 4, the original iPad, or the fourth-generation
iPod Touch, the display won’t be mirrored, but it will show photos
and videos in supported apps once you start playing them on the
device.


Connect With Composite AV

If your TV doesn’t support HDMI, or if it doesn’t have an available connection, you can link your device to the set through an analog connection, using an Apple Composite AV cable.


Plug the adapter into your device’s 30-pin iPod connector.
Plug the yellow video cable at the end of the adapter into an
available analog video port on your TV.
Plug the red and white audio cables at the end of the adapter into
the red and white audio ports corresponding to the yellow video
input on your TV.
Tune your TV to the appropriate composite video input. The display
won’t be mirrored, but it will show photos and videos in supported
apps once you start playing them on the device.


Connect Wirelessly via Airplay

Apple developed a wireless technology called AirPlay specifically for streaming content from iOS devices to other devices that support it.


Make sure that your iPhone is on the same wireless network as your
other AirPlay devices.
On your iPhone, double-tap the Home button.
Swipe the list that appears to the right, until you get to the
volume and AirPlay settings.
Tap the AirPlay button to bring up a list of supported AirPlay
devices on your network.
Tap the device to which you would like to stream. A TV icon next to
the device indicates that you can stream images, video, and/or
audio, while a speaker icon indicates that you can stream only
audio.


Connect Wirelessly via DLNA

If you don't want to shell out for an AirPlay-capable device, you may be able to use DLNA instead. These days, many modern TVs support streaming from a local network (wired or wireless) via the DLNA (Digital Living Network Alliance) standard. If your TV supports DLNA (or sometimes just "UPnP") streaming, you can use your iPhone as a DLNA server. Just download and install a DLNA-server app--Media:connect, for example--and you're good to go.

Connect Wirelessly with Aftermarket Apps

You could try iMediaShare or AirVideoEnabler as alternatives to the standard airplay functionality.