PDA

View Full Version : پخش فايل صوتي wav



nassim0
دوشنبه 21 بهمن 1392, 16:53 عصر
با سلام خدمت دوستان
توي صفحه پروژم نياز دارم تا پيغامهاي صوتي براي كاربرام به صورت اتوماتيك پخش بشه . اين دو كد رو دارم توي لوكال هاست كار ميكنه اما توي سايت رو آپلود مي كنم كار نمي كنه .


System.Media.SoundPlayer player = new System.Media.SoundPlayer("http://test.ir/1.wav");
player.Play();
////////////////////////////////
SoundPlayer objSoundPlayer = new SoundPlayer("http://test.ir/1.wav");
objSoundPlayer.Play();

kamranetemadi
دوشنبه 21 بهمن 1392, 17:13 عصر
هر دو کد یکی هستن!!!!!
و هردو هم کار میکنن
اما صدا روی هاست پخش میشه :لبخند:


<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript">
var soundObject = null;
function PlaySound() {
if (soundObject != null) {
document.body.removeChild(soundObject);
soundObject.removed = true;
soundObject = null;
}
soundObject = document.createElement("embed");
soundObject.setAttribute("src", "sounds/sound.wav");
soundObject.setAttribute("hidden", true);
soundObject.setAttribute("autostart", true);
document.body.appendChild(soundObject);
}
</script>
</head>
<body>
<form id="form1" runat="server">
<input type = "button" onclick = "PlaySound()" value = "Play Sound" />
</form>
</body>
</html>

nassim0
دوشنبه 21 بهمن 1392, 17:27 عصر
توي كد بيهايند چطور مي تونم نام و مسير فايل رو بدم به src اسكريپت . چون اسم فايل هر بار فرق مي كنه

kamranetemadi
سه شنبه 22 بهمن 1392, 00:15 صبح
روش اول:

<script>localVariable= '<%=ServerVariable %>';</script>
به این شکل میتونید مقدار یک متغیر سمت سرور رو داخل یک متغیر سمت کلاینت بریزید

روش دوم:
در قسمت کد بیهایند اسکریپت رو Response.Write کنید یا داخل innerText یک کنترل مثل div بریزید

nassim0
سه شنبه 22 بهمن 1392, 08:05 صبح
با سلام و تشكر كد رو استفاده كردم اما ارور ميده . هم نام فايل رو بر اساس http://test.ir/11.wav و هم بصورت 11.wav استفاده كردم همون ارورو داد . كد رو براتون مي زارم بي زحمت راهنماييم كنيد كجا رو اشتباه كردم
Server Error in '/site' Application.

HTTP Error 400 - Bad Request.

Version Information: ASP.NET Development Server 10.0.0.0

Response.Redirect("<script type='text/javascript'>var soundObject = null;function PlaySound() {if (soundObject != null) {document.body.removeChild(soundObject);soundObjec t.removed = true;soundObject = null;}soundObject = document.createElement('embed');soundObject.setAtt ribute('src', '"+soundname+"');soundObject.setAttribute('hidden', true);soundObject.setAttribute('autostart', true);document.body.appendChild(soundObject);}</script>");

kamranetemadi
سه شنبه 22 بهمن 1392, 10:36 صبح
بی دقتی کردید:لبخند:
بجای Response.Write
اشتباها Response.Redirect کردید

nassim0
چهارشنبه 23 بهمن 1392, 09:20 صبح
با تشكر ارورر برطرف شد اما باز هم صدايي پخش نشد .

Mohandes2009
چهارشنبه 23 بهمن 1392, 12:56 عصر
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript">
var soundObject = null;
function PlaySound() {
if (soundObject != null) {
document.body.removeChild(soundObject);
soundObject.removed = true;
soundObject = null;
}
soundObject = document.createElement("embed");
soundObject.setAttribute("src", "sounds/sound.wav");
soundObject.setAttribute("hidden", true);
soundObject.setAttribute("autostart", true);
document.body.appendChild(soundObject);
}
</script>
</head>
<body>
<form id="form1" runat="server">
<input type = "button" onclick = "PlaySound()" value = "Play Sound" />
</form>
</body>
</html>

nassim0
چهارشنبه 23 بهمن 1392, 13:33 عصر
جواب نمي ده . شما خودتون از اين كد در قسمت بيهايند Response.write جواب گرفتين . ممكنه امتحان كنيد .

kamranetemadi
چهارشنبه 23 بهمن 1392, 13:55 عصر
من این کار رو کردم و جواب داد...

این اسکریپت رو داخل head صفحه گذاشتم

<script type='text/javascript'>
var soundObject = null;
function PlaySound(src) {
if (soundObject != null) {
document.body.removeChild(soundObject);
soundObjec
t.removed = true; soundObject = null;
}
soundObject = document.createElement('embed');
soundObject.setAttribute('src', src);
soundObject.setAttribute('hidden', true);
soundObject.setAttribute('autostart', true);
soundObject.setAttribute('loop', false);
document.body.appendChild(soundObject);
}

</script>

یک دکمه ساده تعریف کردم!!!!

<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />

این هم کدبیهایند برای رویداد کلیک

protected void Button1_Click(object sender, EventArgs e)
{
src = "آدرس فایل صوتی که قراره پخش بشه";
System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.Append(@"<script>");
sb.Append(@"PlaySound('" + src + "');");
sb.Append(@"</script>");
ScriptManager.RegisterStartupScript(this, this.GetType(), "JCall1", sb.ToString(), false);
}

یا این یکی
protected void Button1_Click(object sender, EventArgs e)
{
src = "آدرس فایل صوتی که قراره پخش بشه";
ScriptManager.RegisterStartupScript(this, this.GetType(), "JCall1", "PlaySound('" + src + "');", true);
}

nassim0
چهارشنبه 23 بهمن 1392, 14:20 عصر
من يه صفحه مستر پيج دارم كد هاي html رو اونجا قرار دادم
<script type='text/javascript'>

src = '<%=src%>';
var soundObject = null;
function PlaySound(src) {
if (soundObject != null) {
document.body.removeChild(soundObject);
soundObjec
t.removed = true; soundObject = null;
}
soundObject = document.createElement('embed');
soundObject.setAttribute('src', src);
soundObject.setAttribute('hidden', true);
soundObject.setAttribute('autostart', true);
soundObject.setAttribute('loop', false);
document.body.appendChild(soundObject);
}

</script>
متغير src رو همونجا تعرف كردم . حالا رفتم توي صفحه lكد بيهايند مستر پيج و صفحه مربوط به پخش صدا و يك متغير public string src تعريف كردم . اما ارور ميگيره


The Controls collection cannot be modified because the control contains code blocks (i.e. <% ... %>).

kamranetemadi
چهارشنبه 23 بهمن 1392, 22:41 عصر
این قسمت رو حذف کنید
src = '<%=src%>';

برای پاس دادن مقدار src از کد بیهایند این کارو بکنید

protected void Button1_Click(object sender, EventArgs e)
{
src = "آدرس فایل صوتی که قراره پخش بشه";
ScriptManager.RegisterStartupScript(this, this.GetType(), "JCall1", "PlaySound('" + src + "');", true);
}