FileStream fs = new FileStream(Server.MapPath("sound/sound1.wav"), FileMode.Open, FileAccess.Read);
        byte[] arrfile = new byte[fs.Length - 44];
        fs.Position = 44;
        fs.Read(arrfile, 0, arrfile.Length);
        fs.Close();
        Response.Clear();
        Response.ContentType = "audio/x-wav wav";
        Response.BinaryWrite(arrfile);
上面这样可以不
直接在本面输出行吗?还是要用到object标签

解决方案 »

  1.   

    你可以试试用UltraEdit这个软件打开看看,它有一个功能就是可以转换字符的。 
      

  2.   

    媒体object标签如何指向音频流?
      

  3.   

    把这一段改在httphandler里,即ashx...页面媒体object标签设置src指向ashx即可...
      

  4.   

    如何指向呢,我指向有错误?还是代码有错        <object id="PTMediaPlayer" classid="clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6" width="200px">
                        <param name="URL" value="handler.aspx" />
                        <param name="playCount" value="1" />
                        <param name="autoStart" value="1" />
                        <param name="volume" value="100" />
                        </object>
      

  5.   

    去看看MSDN...httphandler有专门的声明,不是aspx...
      

  6.   

    之前写错,用media player
           <object id="PTMediaPlayer" classid="clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6" width="200px">
                        <param name="url" value="Handler.ashx" />
                        <param name="playCount" value="1" />
                        <param name="autoStart" value="1" />
                        <param name="volume" value="100" />
                        </object>Handler.aspxusing System;
    using System.Web;
    using System.IO;public class Handler : IHttpHandler {
        
        public void ProcessRequest (HttpContext context) {
            FileStream fs = new FileStream(context.Server.MapPath("sound/sound1.wav"), FileMode.Open, FileAccess.Read);
            byte[] arrfile = new byte[fs.Length - 44];
            fs.Position = 44;
            fs.Read(arrfile, 0, arrfile.Length);
            fs.Close();
            context.Response.Clear();
            context.Response.ContentType = "audio/x-wav wav";
            context.Response.BinaryWrite(arrfile);    }
     
        public bool IsReusable {
            get {
                return false;
            }
        }}
      

  7.   

    你的方法不对,要使用MemoryStream 输出,而且你的arrfile数组也不完整正确的方法如下:
    新建Default2.aspx页面,后台cs代码
    using System.IO;public partial class Default2 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
                FileStream fs = new FileStream(Server.MapPath("res/1.wav"), FileMode.Open, FileAccess.Read);
                byte[] arrfile = new byte[fs.Length];
                fs.Read(arrfile, 0, arrfile.Length);
                fs.Close();
                MemoryStream ms = new MemoryStream(arrfile);
                Response.ContentType = "audio/x-wav wav";
                ms.WriteTo(this.Response.OutputStream);
                ms.Close();
        }
    }新建Default.aspx页面,前台html代码
            <object id="PTMediaPlayer" classid="clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6" width="200px">
                        <param name="URL" value="Default2.aspx" />
                        <param name="playCount" value="1" />
                        <param name="autoStart" value="1" />
                        <param name="volume" value="100" />
                        </object>
      

  8.   

    我的测试路径是Server.MapPath("res/1.wav"),把它改成你的测试路径Server.MapPath("sound/sound1.wav"), 如果你做过验证码的话,其实这种方法已经见过了,只是你没有注意罢了。