PDA

View Full Version : سوال: صداي متن



ravand
دوشنبه 19 دی 1390, 22:31 عصر
سلام
كسي برنامه اي نداره كه بشه وقتي ماوس رو مياريم روي متن صدايي شروع به خوندن بكنه؟
ميخوام توي وبلاگ يه سري شعر بذارم كه بازديد كننده وقتي ماوس رو ميبره روش نه اينكه كليك كنه فقط ببره روش صدايي كه قبلا ضبط كردم خونده بشه.از اين تابع ميشه براي ماوس استفاده كرد ولي براي خوندن و فعال شده صدا نميدونم.

mouseover

tux-world
سه شنبه 20 دی 1390, 13:01 عصر
من حاضرم سیستم عامل طراحی کنم ولی این کار شما رو نکنم D: سری که درد نمیکنه دستمال نمی بندن

ravand
سه شنبه 20 دی 1390, 13:22 عصر
وقتي رفتم توي ايميلم ديدم كه پيام رسيده گفته كه به تاپيك شما پاسخ داده شده . خيلي خوشحال شدم :لبخند:
ولي حالا كه امدم حالم گرفته شد. :لبخند:
براي چي نبايد اين كار رو بكنم؟
يعني شدني نيست ؟

mehdi.mousavi
سه شنبه 20 دی 1390, 14:09 عصر
يعني شدني نيست ؟

سلام.
البته که شدنیه. کافیه تا hover handler ای برای element مورد نظر تعریف کنید،
سپس در Handler مزبور و با استفاده از (بطور مثال) jPlayer (http://jplayer.org/)، فایل mp3 مورد نظر رو Play کنید.

موفق باشید.

tux-world
سه شنبه 20 دی 1390, 14:10 عصر
خوب معلومه که میشه ولی سنگ رو از کوه کندنه. شما باید برای هر کلمه صداتونو ذخیره کنید. این نرم افزارهایی که قادرن کلمات رو ادا کن هیچ کودوم فارسی رو ساپورت نمیکنن. فقط میتونی از لینک استفاده کنی الان یادم افتاد ممکنه به دردت بخوره http://parskhan.aftab.cc/

ravand
سه شنبه 20 دی 1390, 14:16 عصر
خوب معلومه که میشه ولی سنگ رو از کوه کندنه. شما باید برای هر کلمه صداتونو ذخیره کنید. این نرم افزارهایی که قادرن کلمات رو ادا کن هیچ کودوم فارسی رو ساپورت نمیکنن. فقط میتونی از لینک استفاده کنی الان یادم افتاد ممکنه به دردت بخوره http://parskhan.aftab.cc/

من توي حرف هاي اولم گفتم كه ميخوام براي مثلا يه بيت شعر بنويسم و صداي خودم رو روش بذارم پس نيازي نيست براي هر حرف اين كار رو بكنم. من يه بيت شعر ميذارم و روي اون بيت شعر صدامو ميذارم به همين سادگي . به همين خوشمزگي :لبخند:

ravand
سه شنبه 20 دی 1390, 15:42 عصر
الان شما اين كد رو ببينيد:

<html>
<head>
<style>
#mokaab{
width:50px;
height:50px;
}
</style>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$('p').mouseover(function(){
$(document.body).css("background","green");
});
});
</script>
</head>
<body>

<div id="mokaab">
<p>Hello</p>
</div>
</body>
</html>

وقتي ماوس روي متن hello قرار ميگيره رنگ زمينه ي تغيير ميكنه ميشه اين كار رو براي صداي زمينه هم انجام داد ؟ يعني براي كد زير:

<bgsound src="D:\sound\Karbala-Karbala.mp3" loop="-1">
كه وقتي ماوس روي متن قرار ميگيره صدا فعال بشه.

tux-world
سه شنبه 20 دی 1390, 15:57 عصر
بهتزه همون jplayer رو دانلود کنی بسیار بسیار جالبه. تو اون میتونی. البته اون html5 هستش و IE عاجزه. اگه مثل بقیه بی خیالش بشی بهتر. رو فایرفاکس تست کردم بینهایت جالب بود.

mehdi.mousavi
سه شنبه 20 دی 1390, 16:10 عصر
سلام.
اگر اصرار به انجام این کار به روشی غیر از اون چه که گفتم دارید، می تونید با استفاده از این Plugin (http://code.google.com/p/jqueryjs/source/browse/trunk/plugins/sound/jquery.sound.js?r=5750) اینکارو راحت انجام بدید.
در این روش، از embed tag برای مرورگرهایی غیر از IE و از bgsound در IE استفاده میشه.

$(function () {
$('p').mouseover(function () {
$(this).css('background', 'green');
$.sound.play('myfile.wav');
});
});


موفق باشید.

ravand
سه شنبه 20 دی 1390, 17:19 عصر
ببخشيد من اين كاري كه شما گفتيد رو كردم ولي نشد. نميدونم چه اشتباهي كردم.

<html>
<head>
<style>
#mokaab{
width:50px;
height:50px;
}
</style>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$(function () {
$('p').mouseover(function () {
$(this).css('background', 'green');
$.sound.play('D:\ahang.wav');
});
});
});
</script>
</head>
<body>
<div id="mokaab">
<p>Hello</p>
</div>
</body>
</html>
هم با IE تست كردم و هم با فايرفاكس و اپرا و هم كروم.
لطفا اگه مشكلش رو حل كرديد طريقه ي سازگاري با فايرفاكس و اكسپلورر رو هم بنويسيد
متشكرم

mehdi.mousavi
سه شنبه 20 دی 1390, 17:24 عصر
سلام.
d:\ahang.wav چیه؟ اونجا باید URL به فایل wav رو قرار بدید، مثلا، می تونید ahang.wav رو کنار html خودتون کپی کنید و ...

موفق باشید.

ravand
سه شنبه 20 دی 1390, 17:28 عصر
شرمنده داداش ولي اين كاري كه شما گفتيد هم كردم ولي نشد.

<html>
<head>
<style>
#mokaab{
width:50px;
height:50px;
}
</style>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$(function () {
$('p').mouseover(function () {
$(this).css('background', 'green');
$.sound.play('ahang.wav');
});
});
});
</script>
</head>
<body>
<div id="mokaab">
<p>Hello</p>
</div>
</body>
</html>

البته اين رو هم بگم كه وقتي ماوس رو ميبرم روي متن رنگش سبز ميشه ولي صدا كار نميكنه

mehdi.mousavi
سه شنبه 20 دی 1390, 17:42 عصر
دارید منو بازی میدید؟ :ناراحت: نگفتم با استفاده از اون Plugin باید اینکارو کنید؟
کد رو بدین شکل تغییر بدید:

<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
(function ($) {
$.sound = {
tracks: {},
enabled: true,
template: function (src) {
return '<embed style="height:0" loop="false" src="' + src + '" autostart="true" hidden="true"/>';
},
play: function (url, options) {
if (!this.enabled)
return;

var settings = $.extend({ url: url, timeout: 2000 }, options);
if (settings.track) {
if (this.tracks[settings.track]) {
var current = this.tracks[settings.track];
// TODO check when Stop is avaiable, certainly not on a jQuery object
current.Stop && current.Stop();
current.remove();
}
}

var element = $.browser.msie ? $('<bgsound/>').attr({ src: settings.url, loop: 1, autostart: true }) : $(this.template(settings.url));
element.appendTo("body");

if (settings.track) {
this.tracks[settings.track] = element;
}

setTimeout(function () { element.remove(); }, options.timeout)
return element;
}
};
})(jQuery);

$(function () {
$('p').mouseover(function () {
$(this).css('background', 'green');
$.sound.play('myfile.wav');
});
});
</script>
<body>
<div id="mokaab">
<p>
Hello</p>
</div>
</body>


موفق باشید.

ravand
سه شنبه 20 دی 1390, 17:50 عصر
داداش كد شما براي اكسپلورر كار كرد و وقتي خواستم روي فايرفاكسم تستش كنم فايرفاكس دانلود برنامه ي كوايك تايم رو درخواست كرد .
ولي من حالا كار به اين چيزاش ندارم ميخواستم كار كنه كه كار كرد. ولي داداش من ميخواستم كدنويسيش رو ياد بگيرم . اين كدها هم خيلي طولاني مخم گير پاج ميكنه ! يعني ساده تر از اين نميشد نوشت؟ :لبخند: اگه مي توني يه چيز ساده ترش رو بنويس اگه نمي توني هم كه بيخيال ميسازيم :لبخند:
بهر حال از لطفت ممنونم

ravand
سه شنبه 20 دی 1390, 18:05 عصر
داداش اينو من نوشتم براي IE كار ميكنه :لبخند:

<html>
<head>
<style>
#mokaab{
width:50px;
height:50px;
}
</style>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$(function () {
$('p').mouseover(function(){
$('embed').remove();
$('body').append('<embed src="ahang.wav" autostart="true" hidden="true" loop="false">');
});
});
});
</script>
</head>
<body>
<div id="mokaab">
<p>Hello</p>
</div>
</body>
</html>



بهم تبريك بگو مخم از حالت گير پاج خارج شد.
حالا بگو براي فايرفاكس چيكار كنم؟
البته توي كروم هم كار نمي كرد. :لبخند:

ravand
سه شنبه 20 دی 1390, 21:39 عصر
بازم بيشتر سعي كردم و كدي نوشتم كه وقتي ماوس مياد روي متن ، آهنگ خونده بشه ولي وقتي ماوس رو بر ميداريم آهنگ صداش قطع ميشه . اين كد با كروم و اكسپلورر كار ميكنه ولي با فايرفاكس كار نميكنه. آيا كدي براي گذاشتن صداي زمينه براي فايرفاكس نيست ؟ هر چند كد كه براي گذاشتن آهنگ هست رو بهم معرفي كنيد تا تست كنم متشكرم:

<html>
<head>
<style>
#mokaab{
width:50px;
height:50px;
}
</style>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$("p").hover(
function () {
$(this).append($('<embed src="ahang.mp3" autostart="true" hidden="true" loop="false">'));
},
function () {
$(this).find("embed:last").remove();
}
);
});
</script>
</head>
<body>
<div id="mokaab">
<p>matn</p>
</div>
</body>
</html>
راستي توي اپرا هم كار نميكنه

tux-world
چهارشنبه 21 دی 1390, 00:28 صبح
من اینا رو پیدا کردم.

<a href="/test.mp3" class="play">play</a>
down vote
<script type="text/javascript">
(function($) {
$(function(){
$("a.play").each(function() {
$(this).mouseover(function(){
var mp3file = $(this).attr('href');
// asign this mp3file to the player and play it
}).mouseout(function() {
// tell the mp3 player to stop
});
});
});
})(jQuery);
</script>



http://stackoverflow.com/questions/3342803/audio-on-mouseover
http://stackoverflow.com/questions/5722758/jquery-fadetoggle-if-currently-animated-ignore-further-input
http://www.schillmania.com/projects/soundmanager2/
http://css-tricks.com/play-sound-on-hover/

ravand
چهارشنبه 21 دی 1390, 07:44 صبح
كد شما كار نكرد اگه ميشه يه تستي بكن بعد بذار ما ببينيم مشكل ما چيه؟

tux-world
چهارشنبه 21 دی 1390, 09:29 صبح
كار ميكنه. لينكهاي زير رو هم ديدين مثال عيني زده خودش

ravand
چهارشنبه 21 دی 1390, 10:08 صبح
اين كدها ناقص هست و يه چيزي كم داره:

<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
(function($) {
$(function(){
$("a.play").each(function() {
$(this).mouseover(function(){
var mp3file = $(this).attr('href');
// asign this mp3file to the player and play it
}).mouseout(function() {
// tell the mp3 player to stop
});
});
});
})(jQuery);
</script>
</head>
<body>
<a href="ahang.mp3" class="play">play</a>
down vote
</body>
</html>


آيا اوني كه براي شما كار ميكنه توي همه ي مرورگرها جواب ميده؟
من مثال هاشم تست كردم كار نكرد.
اگه براي شما كار كرده مثل اين روشي كه من الان كدهام رو گذاشتم شما اونا رو بذار.
متشكرم