private Stream getNextAudioStream(string basename)
 {
     if (getAudioStream() != null && getCurrentPCMFormat() != null)
     {
         FileStream fs = new FileStream(Path.Combine(getOutputFolder(), getCurrentAudioFileName()), FileMode.Create, FileAccess.Write);
         urakawa.media.data.audio.PCMDataInfo dataInfo = new urakawa.media.data.audio.PCMDataInfo(getCurrentPCMFormat());
         Stream curAS = getAudioStream();
         curAS.Position = 0;
         dataInfo.setDataLength((uint)curAS.Length);
         dataInfo.writeRiffWaveHeader(fs);
         copyData(curAS, fs, dataInfo.getDataLength());
         fs.Close();
     }
     mAudioMemoryStream = new MemoryStream();
     mPCMFormat         = null;
     return(getAudioStream());
 }
Esempio n. 2
0
 /// <summary>
 /// Create a new audio node by importing data from a file.
 /// </summary>
 public urakawa.core.TreeNode CreateAudioNode(string filename)
 {
     urakawa.Presentation  p    = getPresentation(0);
     urakawa.core.TreeNode node = p.getTreeNodeFactory().createNode(typeof(AudioNode).Name, DataModelFactory.NS);
     // Update the media data manager to accept this type of file
     if (!p.getMediaDataManager().getEnforceSinglePCMFormat())
     {
         System.IO.FileStream audioStream          = System.IO.File.OpenRead(filename);
         urakawa.media.data.audio.PCMDataInfo info = urakawa.media.data.audio.PCMDataInfo.parseRiffWaveHeader(audioStream);
         audioStream.Close();
         p.getMediaDataManager().setDefaultPCMFormat(info);
         p.getMediaDataManager().setEnforceSinglePCMFormat(true);
     }
     // I'll go ahead and not comment this part
     urakawa.media.data.audio.AudioMediaData audio = p.getMediaDataFactory().createAudioMediaData();
     audio.appendAudioDataFromRiffWave(filename);
     urakawa.media.data.audio.ManagedAudioMedia media =
         (urakawa.media.data.audio.ManagedAudioMedia)p.getMediaFactory().createAudioMedia();
     media.setMediaData(audio);
     urakawa.property.channel.ChannelsProperty prop = p.getPropertyFactory().createChannelsProperty();
     prop.setMedia(FindChannel("bobi.audio"), media);
     node.addProperty(prop);
     return(node);
 }