2016-04-01 24 views
0

here açıklandığı gibi, bir ses dosyasının belirli bir bölümünü oynatmak için kullanılabilir. Şunun gibi: Ben AudioFileReader ait Position özelliğini ayarlayın sürece Yukarıdaki örnek Tekrar oynamak istiyorsanız, Ancak ikinci 5. başlayarak 8 saniye bir ses oynayacakNAudio - Her bir kayıttan yürütme için yeni bir OffsetSampleProvider örneği oluşturulmalıdır

AudioFileReader AudioReader = new AudioFileReader("x.wav"); 
OffsetSampleProvider OffsetProvider = New OffsetSampleProvider(AudioReader); 

OffsetProvider.SkipOver = TimeSpan.FromSeconds(5); 
OffsetProvider.Take = TimeSpan.FromSeconds(8); 

myWaveOut.Init(OffsetProvider); 
myWaveOut.Play(); 

, o çalmıyor 0'a ve yeni bir OffsetSampleProvider örneğini yeniden oluşturun. Bu yüzden, bir şey eksik mi, yoksa OffsetSampleProvider'un kullanılmasının gerekip gerekmediğini bilmek istiyorum (eğer varsa, bununla ilgili herhangi bir kaynağı serbest bırakmak zorundayım).

cevap

1

OffsetSampleProvider kodunu kopyalayabilir ve buna bir Reset yöntemi ekleyebilirsiniz. Ayrıca, performans nedenleriyle SkipOver'u kullanmaktan kaçınıyorum ve sadece AudioFileReader'un CurrentTime'unu oynatmadan hemen önce 5 saniyeye ayarlayın.