请问一下在mediaplayer中怎么实现左右声道,和音量条控制音量大小??在线等!~
两个喇叭同时为左声道,或两个喇叭同时为右声道.

解决方案 »

  1.   

    补充:请问如何实现媒体文件在mediaplayer中的循环播放,分不够可以追加
      

  2.   

    我们俩个的问题是一样的!
    问题是如果左声道关了,那也就左边的音箱也就没有音了。如果能够做到。不管关闭任何一个声道要两个音箱一起响就会好一点!
    “MCI Command String总览—完全参数篇” 这篇文章对你有用。
    http://www.stvb.com/shownews.asp?NewsID=1864
      

  3.   

    在csdn中有一个源码是可以做到的。但是下载不到了!
      

  4.   

    ms老大没有考虑到那么多问题,这个去掉了。可以通过解码驱动改变。建议不要装新的media player 而改用老的  通过升级插件来提升性能
      

  5.   

    左右声道用Balance 音量用value mediaplayer中的循环播放就判断播放结束时设时间等于0,再play()不就可以了吗
      

  6.   

    能给一个代码看一下!我有一点不相信。
    var
    s:MCI_DGV_SETAUDIO_PARMS;
    将左声道的声音在两个声道平衡播出:
    s.dwItem:=MCI_DGV_SETAUDIO_SOURCE;
    s.dwvalue:=MCI_DGV_SETAUDIO_SOURCE_LEFT;
    mciSendCommand(DeviceID,MCI_SETAUDIO,MCI_SET_OFF,0);
    mciSendCommand(DeviceID,MCI_SETAUDIO,MCI_DGV_SETAUDIO_ITEM or MCI_DGV_SETAUDIO_value,integer(@s));
    mciSendCommand(DeviceID,MCI_SETAUDIO,MCI_SET_ON,0);
    这个是C的!
      

  7.   

    这个我不是很懂,我没有做过VOD我只是觉得这种技术可以,所以想知道而已。
      

  8.   

    这些问题其实也比较简单(当你明白原理后)
    先说说切换左右声道的问题:
      media player其实也具有切换左右声道的功能,但只能通过属性->高级->mpeg audio filter的方式来切换,但你无法在程序中调用,且只能用于VCD格式的文件,原因就在于,media player(媒体播放器)播放文件的原理是基于DirectShow技术的,在你选择打开一个文件时,媒体播放器会自己查找相应的解码器,然后组成播放链(具体过程在<DirectShow开发指南>中有较详细的论述(陆其明主编)http://hqtech.nease.net),以VCD文件为例:音频流经由Mpeg-1 audio filter解码后会直接送到声卡缓冲区(wave格式),这时在音频缓冲区中的音频格式左右声道为:aa bb cc dd这种形式,其中aa-左声道,bb-右声道,cc-左声道,dd-右声道这种格式。要想切换左右声道,需将它们分离开来,使两个声道都只使用一个声道的数据,这样声道就切换成功了。
      要想实现这个功能,如果只播放VCD,你可直接调用mpeg-1 audio filter的切换功能,如果你还要播放其它格式的文件比如mp4,wmv,asf等,你就得用c++写一个filter,具体可参考<DirectShow开发指南>一书,然后写一个动态链接库(其实调用Mpeg-1 Audio Filter的切换声道功能也得写一个动态链接库,用VB好像不能直接调用控制),开放函数接口给VB调用。对于分屏显示技术:
      以市场上软解压VOD技术为例:在计算机中需有一个双头显示功能的显卡(带S端子,或TV、视频等输出),在显示中如果设为左右延伸桌面的方式,屏幕的宽度就会是原来的两倍,相当于两个显示器宽度,在VB的Form中width属性是一个显示器的两倍,你在程序中,可将实际显示视频的窗口位置Form1.left属性设为0,而将控制窗口的Form2.left设置可用窗口宽度的一半即可。使用神龙卡需相应的sdk。
    另外,这种切换声道的方法不适合对DVD(Mpeg2)的解码输出。
      

  9.   

    用mediaplayer播放时,如果用MCI函数mciSendCommand将左声道的声音在两个声道平衡播出,那DeviceID该怎么取得?我用mciGetDeviceID取不出,返回的都是0