I did this in VB a while back - I had basically got three options; using the high level Windows Media control, use the MCI winAPI, or the low-level winAPI. The former requires WMP to be installed in the client machine, and the latter is really tricky (dealing directly with streaming media), so I plumped for using the MCI API. There are a lot of good examples on the NET with using it with VB.