第一个,你好像两个都是音频文件格式,
第二个,你可以考虑用SMIL描述来实现
第三个,市面上一些应用不是两个文件的切换,而是隐藏视频播放界面而已,这样才不需要缓冲,视频仅仅是视频(不包含声音),播不播放仅仅是为了更多的看到其他的信息,而不是基于带宽等播放资源占用的问题(这些应该在开始播放前就决定)。
第四个,其实就是这样也可以实现的,一般播放控件的操作接口中都有定位的操作,你在切换前要纪录当前播放的位置,在切换文件后定位就可以了,我用伪语言来描述你的函数就是
function video()
{        current=WindowsMediaPlayer1.controls.CurrentPosition;//注意要放在文件切换前面,否则一切换自动播放后就一定是0了,你原来的代码就有这样的问题。
         ...............//这里还应该有一些其他处理的操作吧,比如先把播放停止
WindowsMediaPlayer1.url="xiujingbian.wav";
         WindowsMediaPlayer1.setPosition(current);//注意我是用的伪语言,具体的接口你要查资料。
         ..............//这里应该有些其他的操作吧,比如继续播放
}function audio()
{
//和video差不多,就是链接不同吧,甚至可以把两个函数合并,用一个全局变量开关来指代
}