网络上有很多的网络电台,许多都是 mms://之类的格式,我也很喜欢某个电台的某个节目,我就想在写个程序,在这个节目播放的时候,自动给她录制下来,保存成mp3这样,我下班以后就可以听了。
用c#怎么实现,该看哪方面的资料,
谢谢各位。

解决方案 »

  1.   

    直接实现很困难,要解析mms流如果装了mplayer 可以用这个命令实现保存
    mplayer -dumpstream mms://地址或者用录音,内录的形式保存
    打开音频设备的混音选项
    用自带录音机或者编程都很容易实现了
      

  2.   

    这个我做过。不需要你写任何代码、
    必须有硬件支持。  要买个信号转换盒。  加上 mediaplayserver 客户端就可以了。
      

  3.   

    使用socket,
    只要将发送包的结构 改成 mms 或 rstp的结构,发送过去,然后就按通常的做法,receive到 buf里。我只知道RTSP的结构,MMS你可以去GOOGLE或BAIDU上查。这是一个参考地址:http://www.yuanma.org/data/2007/0113/article_2109.htm================================================
    DESCRIBE rtsp://192.168.20.136:5000/xxx666 RTSP/1.0
    CSeq: 2
    token: 
    Accept: application/sdp
    User-Agent: VLC media player (LIVE555 Streaming Media v2005.11.10)
      

  4.   

    Windows Media Service   看看这个相关内容或许有帮助
      

  5.   

    http://zhidao.baidu.com/question/74661123这个应该很有用
      

  6.   

    1.引入DirectX 的DLL文件的名字空间:using Microsoft.DirectX;
    using Microsoft.DirectX.DirectSound;   2.建立设备。在我们导入的Microsoft.DirectX.DirectSound空间中,有个Device的类。这个是表示系统中的声音设备。Device dv=new Device();   3.设置CooperativeLevel。因为windows是多任务的系统,设备不是独占的,所以在使用设备前要为这个设备设置CooperativeLevel。调用Device的SetCooperativeLevel方法:其中,第一个参数是一个Control,第二个参数是个枚举类型。
    using System;
    using System.Windows.Forms;
    using Microsoft.DirectX.DirectSound;
    using Microsoft.DirectX;    namespace DirectSoundManager
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }        private void button1_Click(object sender, EventArgs e)   //单击播放录音文件
            {              // 建立声音设备
           Microsoft.DirectX.DirectSound.Device dev = new Microsoft.DirectX.DirectSound.Device();
                dev.SetCooperativeLevel(this,Microsoft.DirectX.DirectSound.CooperativeLevel.Normal);            // 为声音建立二级缓冲区
                try
                {
                    Microsoft.DirectX.DirectSound.SecondaryBuffer snd = new Microsoft.DirectX.DirectSound.SecondaryBuffer(@"d:\abce.wav", dev);       //录音文件的路径                // 播放声音
              snd.Play(0, Microsoft.DirectX.DirectSound.BufferPlayFlags.Default);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                }        }
            SoundRecord sou = new SoundRecord();   
            private void button2_Click(object sender, EventArgs e)     //单击开始录音
            {            
                sou.SetFileName(@"d:\abce.wav");          //录音保存的位置
                sou.RecStart();            
               // ---------------- //录音
            }        private void button3_Click(object sender, EventArgs e)   //单击录音结束
            {
                sou.RecStop();         //停止录音
            }
        }
    }