【问题标题】:How to upload and play audio file using c#如何使用c#上传和播放音频文件
【发布时间】:2016-02-10 09:04:29
【问题描述】:

我有网络表单,当用户单击一个按钮并从本地设备中选择文件并将其上传到我现在项目中的文件夹时,此文件将传递 html5 的音频标签,并准备播放 我尝试了以下代码

<div class="col-sm-5">
 <asp:Button ID="btnbrowse" runat="server" Text="Upload File"
 CssClass="btn btn-success btn-block"
  OnClick="btnbrowse_Click" />
 </div>

和后面的代码

string fileName = System.IO.Path.GetFileName(FileUpload5.PostedFile.FileName);
if (fileName != null)
{
    FileUpload1.PostedFile.SaveAs(Server.MapPath("~/Forms/Upload/" + fileName));
    string PATH = System.IO.Path.Combine(Server.MapPath("~/Forms/Upload"), FileUpload5.PostedFile.FileName);
    string Path = Server.MapPath(FileUpload5.FileName);
    SoundPlayer playthewavfile = new SoundPlayer(PATH);
    playthewavfile.SoundLocation = Path.ToString();
    playthewavfile.SoundLocation = PATH.ToString();
    playthewavfile.Play();               
}

【问题讨论】:

  • {"位于 G:\\backup\\LTM.CTP.WEBFORM\\LTM.CTP.WEBFORM\\Forms\\Upload\\q1.wav 的文件不是有效的波形文件."}
  • 它是一个有效的文件吗?能玩原版吗?是上传的文件和原文件一样大吗?
  • 你是对的,这个文件只是一个空文件,那么我该如何解决这个问题
  • 如何将其保存在数据库中,然后再次返回播放它

标签: c# asp.net


【解决方案1】:

这就是我播放.wav文件的方式,我首先保存了.wav文件,然后将.wav文件传递给SoundPlayer类对象来播放文件。

string path = System.IO.Path.Combine(Server.MapPath("uploads/"), FileUpload1.PostedFile.FileName);
FileUpload1.PostedFile.SaveAs(path);
SoundPlayer s = new SoundPlayer(path);
s.Play();

请注意,这可能不适用于 .wav 以外的音频格式,请参阅 Microsoft 的 article

SoundPlayer 类无法播放其他文件类型,例如 .wma 或 .mp3。如果您想播放其他文件类型,您可以使用 Windows 媒体播放器控制。有关详细信息,请参阅使用 Windows .NET Framework 解决方案和 Windows Media 中的媒体播放器控件 Visual Basic .NET 和 C# 中的播放器对象模型参考 Windows 媒体播放器 SDK。

另外,我不建议使用服务器端代码来播放音频,因为音频可能只是在服务器上运行,而客户端可能不知道是否正在播放某些内容。强烈建议您使用 html 音频播放器并将路径传递给它。请参阅此SO thread 以获取参考。

【讨论】:

  • 文件已上传,但这是我上传的那个文件的一个空文件
  • 兄弟,尝试在新创建的网页上测试您的代码,此外,您能告诉我为什么要编写这些代码行吗?字符串路径 = Server.MapPath(FileUpload5.FileName);和 playthewavfile.SoundLocation = Path.ToString();
  • 我认为有我的文件位置导致异常,但是当我调试时我发现文件已上传,但这只是一个导致异常的空文件?如果我保存这个我该怎么做db中的文件然后回去播放吗?还是直接传上传文件播放?
  • 兄弟,在将文件保存在某个特定位置之前/之后,将其路径保存在数据库中,这样您就可以通过从数据库中读取路径直接获取文件
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-11-14
  • 2012-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-17
  • 1970-01-01
相关资源
最近更新 更多