c# - Audio playing stopped when i resize a WaveForm to form size -


i have problem audio application. i'm using naudio library. when play sound without using "samplesperpixel" method on waveviewer control, works perfectly, when want assign value method. sound, when play starts unexpected time , finish 4sec. later.

here code:

namespace audiomixer {     public partial class form1 : form     {         public form1()         {             initializecomponent();         }          int bytespersample;         int samples;         int samplespixel;         private naudio.wave.wavestream pcm = null;          private naudio.wave.blockalignreductionstream stream = null;         private naudio.wave.directsoundout output = null;          private void openfiletoolstripmenuitem_click(object sender, eventargs e)         {             openfiledialog dialog = new openfiledialog();              dialog.filter = "audio file (*.wav;*.mp3)|*.wav;*.mp3;";              if (dialog.showdialog() != dialogresult.ok) return;              disposewave();              if (dialog.filename.endswith(".mp3"))             {                 pcm = naudio.wave.waveformatconversionstream.createpcmstream(new naudio.wave.mp3filereader(dialog.filename));                 stream = new naudio.wave.blockalignreductionstream(pcm);             }              else if (dialog.filename.endswith(".wav"))              {                 pcm = new naudio.wave.wavechannel32(new naudio.wave.wavefilereader(dialog.filename));                 stream = new naudio.wave.blockalignreductionstream(pcm);                    }              output = new naudio.wave.directsoundout();             output.init(stream);             output.stop();              waveviewer1.wavestream = stream;             bytespersample = (pcm.waveformat.bitspersample / 8) * pcm.waveformat.channels;             samples = (int)(pcm.length / bytespersample);             samplespixel = samples / this.width;             waveviewer1.samplesperpixel = samplespixel;              opened_file_name.text = dialog.filename;             play_button.visible = true;             play_button.enabled = true;                    }          protected override void onresize(eventargs e)         {             base.onresize(e);             waveviewer1.samplesperpixel = samplespixel;         }          private void form1_load(object sender, eventargs e)         {             opened_file_name.text = "audio file not opened, choose 1 computer";             play_button.visible = false;         }          private void play_button_click(object sender, eventargs e)         {             if (output != null)             {                 if (output.playbackstate == naudio.wave.playbackstate.playing)                 {                     output.pause();                 }                 else if (output.playbackstate == naudio.wave.playbackstate.paused)                 {                     output.play();                 }                 else if (output.playbackstate == naudio.wave.playbackstate.stopped)                 {                     output.play();                 }             }         }          private void disposewave()         {             if (output != null)             {                 if (output.playbackstate == naudio.wave.playbackstate.playing)                 {                     output.stop();                     output.dispose();                     output = null;                 }                 }              if (stream != null)             {                 stream.dispose();                 stream = null;             }         }          private void form1_formclosing(object sender, formclosingeventargs e)         {             disposewave();         }          private void closetoolstripmenuitem_click(object sender, eventargs e)         {             this.close();         }     } } 


Comments

Popular posts from this blog

android - Get AccessToken using signpost OAuth without opening a browser (Two legged Oauth) -

org.mockito.exceptions.misusing.InvalidUseOfMatchersException: mockito -

google shop client API returns 400 bad request error while adding an item -