2014-11-01 2 views
-2

Я запрограммировал на C# выигрышное колесо. Для каждого поля он воспроизводит звук. От 200 мс до 1,5 секунд. (Звучит как «тик»).Воспроизведение звука в C# более эффективно

Это мой код (только звук):

public class Global{ 
    public static WMPLib.WindowsMediaPlayer tick_sound = new WMPLib.WindowsMediaPlayer(); 
} 

private void timer1_Tick(object sender, EventArgs e){ 
    Global.tick_sound.controls.stop(); 
    Global.tick_sound.URL = @"\Resources\tick.mp3"; 
    Global.tick_sound.controls.play(); 
} 

Это работает, но звук не звучит очень хорошо в этом timerloop. Думаю, Windows Media Player замедляется. Есть ли другой способ играть в звуки и играть быстрее и лучше?

ответ

0

NAudio - хорошая альтернатива. Вы можете получить его здесь: http://naudio.codeplex.com/

Установить NAudio. Добавить NAudio и NAudio.Wave в качестве ссылки в вашем проекте. И используйте его код.

Вот пример:

class PlaySound 
{ 
    IWavePlayer wave; 
    AudioFileReader file; 



    public PlaySound(string FILE) 
    { 
     file = new AudioFileReader(FILE); 
     wave = new WaveOut(); 
    } 

    public void playSound() 
    { 
     wave.Init(); 
     wave.Play(); 
    } 
} 

И тогда в вашем коде, который играет звук:

PlaySound sound = new PlaySound(@"\Resources\tick.mp3"); 
sound.playSound(); 
Смежные вопросы