//</SnippetCreateFileInputNode> //<SnippetCreateFileOutputNode> private async Task CreateFileOutputNode() { FileSavePicker saveFilePicker = new FileSavePicker(); saveFilePicker.FileTypeChoices.Add("Pulse Code Modulation", new List <string>() { ".wav" }); saveFilePicker.FileTypeChoices.Add("Windows Media Audio", new List <string>() { ".wma" }); saveFilePicker.FileTypeChoices.Add("MPEG Audio Layer-3", new List <string>() { ".mp3" }); saveFilePicker.SuggestedFileName = "New Audio Track"; StorageFile file = await saveFilePicker.PickSaveFileAsync(); // File can be null if cancel is hit in the file picker if (file == null) { return; } Windows.Media.MediaProperties.MediaEncodingProfile mediaEncodingProfile; switch (file.FileType.ToString().ToLowerInvariant()) { case ".wma": mediaEncodingProfile = MediaEncodingProfile.CreateWma(AudioEncodingQuality.High); break; case ".mp3": mediaEncodingProfile = MediaEncodingProfile.CreateMp3(AudioEncodingQuality.High); break; case ".wav": mediaEncodingProfile = MediaEncodingProfile.CreateWav(AudioEncodingQuality.High); break; default: throw new ArgumentException(); } // Operate node at the graph format, but save file at the specified format CreateAudioFileOutputNodeResult result = await audioGraph.CreateFileOutputNodeAsync(file, mediaEncodingProfile); if (result.Status != AudioFileNodeCreationStatus.Success) { // FileOutputNode creation failed ShowErrorMessage(result.Status.ToString()); return; } fileOutputNode = result.FileOutputNode; }
private async void GetFileName_Tapped(object sender, TappedRoutedEventArgs e) { FileSavePicker fileSavePicker = new FileSavePicker(); fileSavePicker.FileTypeChoices.Add("MP3 audio", new List <string>() { ".mp3" }); fileSavePicker.FileTypeChoices.Add("Wave audio", new List <string>() { ".wav" }); fileSavePicker.FileTypeChoices.Add("Windows Media Audio", new List <string>() { ".wma" }); fileSavePicker.SuggestedStartLocation = PickerLocationId.MusicLibrary; StorageFile file = await fileSavePicker.PickSaveFileAsync(); if (file != null) { audioFile = file; AudioFileName.Text = audioFile.Name; } else { return; } //rootPage.NotifyUser(String.Format("Recording to {0}", file.Name.ToString()), NotifyType.StatusMessage); MediaEncodingProfile fileProfile = CreateMediaEncodingProfile(file); //my add here,,, await CreateAudioGraph(); // Operate node at the graph format, but save file at the specified format CreateAudioFileOutputNodeResult fileOutputNodeResult = await graph.CreateFileOutputNodeAsync(file, fileProfile); if (fileOutputNodeResult.Status != AudioFileNodeCreationStatus.Success) { // FileOutputNode creation failed //rootPage.NotifyUser(String.Format("Cannot create output file because {0}", fileOutputNodeResult.Status.ToString()), NotifyType.ErrorMessage); //fileButton.Background = new SolidColorBrush(Colors.Red); return; } fileOutputNode = fileOutputNodeResult.FileOutputNode; GetFileName.Background = new SolidColorBrush(Colors.YellowGreen); // Connect the input node to both output nodes deviceInputNode.AddOutgoingConnection(fileOutputNode); deviceInputNode.AddOutgoingConnection(deviceOutputNode); StartStop.IsEnabled = true; }
private async Task CreateAudioGraph() { if (graph != null) { graph.Dispose(); } AudioGraphSettings settings = new AudioGraphSettings(AudioRenderCategory.Media); settings.QuantumSizeSelectionMode = QuantumSizeSelectionMode.SystemDefault; CreateAudioGraphResult result = await AudioGraph.CreateAsync(settings); if (result.Status != AudioGraphCreationStatus.Success) { // Cannot create graph return; } graph = result.Graph; // Create a device input node using the default audio input device (manifest microphone!!!!) CreateAudioDeviceInputNodeResult deviceInputNodeResult = await graph.CreateDeviceInputNodeAsync(MediaCategory.Other); if (deviceInputNodeResult.Status != AudioDeviceNodeCreationStatus.Success) { // Cannot create device input node return; } deviceInputNode = deviceInputNodeResult.DeviceInputNode; //creating file StorageFolder storageFolder = Windows.Storage.ApplicationData.Current.LocalFolder; StorageFile file = await storageFolder.CreateFileAsync("sample.wav", Windows.Storage.CreationCollisionOption.ReplaceExisting); path = file.Path.ToString(); MediaEncodingProfile fileProfile = MediaEncodingProfile.CreateWav(AudioEncodingQuality.Medium); // Operate node at the graph format, but save file at the specified format CreateAudioFileOutputNodeResult fileOutputNodeResult = await graph.CreateFileOutputNodeAsync(file, fileProfile); if (fileOutputNodeResult.Status != AudioFileNodeCreationStatus.Success) { // FileOutputNode creation failed return; } fileOutputNode = fileOutputNodeResult.FileOutputNode; // Connect the input node to both output nodes deviceInputNode.AddOutgoingConnection(fileOutputNode); }
private async Task SelectOutputFile() { FileSavePicker saveFilePicker = new FileSavePicker(); saveFilePicker.FileTypeChoices.Add("Pulse Code Modulation", new List <string>() { ".wav" }); saveFilePicker.FileTypeChoices.Add("Windows Media Audio", new List <string>() { ".wma" }); saveFilePicker.FileTypeChoices.Add("MPEG Audio Layer-3", new List <string>() { ".mp3" }); saveFilePicker.SuggestedFileName = "New Audio Track"; StorageFile file = await saveFilePicker.PickSaveFileAsync(); // File can be null if cancel is hit in the file picker if (file == null) { return; } rootPage.NotifyUser(String.Format("Recording to {0}", file.Name.ToString()), NotifyType.StatusMessage); MediaEncodingProfile fileProfile = CreateMediaEncodingProfile(file); // Operate node at the graph format, but save file at the specified format CreateAudioFileOutputNodeResult fileOutputNodeResult = await graph.CreateFileOutputNodeAsync(file, fileProfile); if (fileOutputNodeResult.Status != AudioFileNodeCreationStatus.Success) { // FileOutputNode creation failed rootPage.NotifyUser(String.Format("Cannot create output file because {0}", fileOutputNodeResult.Status.ToString()), NotifyType.ErrorMessage); fileButton.Background = new SolidColorBrush(Colors.Red); return; } fileOutputNode = fileOutputNodeResult.FileOutputNode; fileButton.Background = new SolidColorBrush(Colors.YellowGreen); // Connect the input node to both output nodes deviceInputNode.AddOutgoingConnection(fileOutputNode); deviceInputNode.AddOutgoingConnection(deviceOutputNode); recordStopButton.IsEnabled = true; }
private async Task SelectOutputFile() { var Folder = ApplicationData.Current.LocalFolder; Folder = await Folder.CreateFolderAsync("Audio", CreationCollisionOption.OpenIfExists); storageFile = await Folder.CreateFileAsync("audio.mp3", CreationCollisionOption.GenerateUniqueName); if (storageFile == null) { return; } MediaEncodingProfile fileProfile = MediaEncodingProfile.CreateMp3(AudioEncodingQuality.High); CreateAudioFileOutputNodeResult fileOutputNodeResult = await graph.CreateFileOutputNodeAsync(storageFile, fileProfile); if (fileOutputNodeResult.Status != AudioFileNodeCreationStatus.Success) { MessageDialog md = new MessageDialog("Error in Audio Device"); md.ShowAsync(); return; } fileOutputNode = fileOutputNodeResult.FileOutputNode; deviceInputNode.AddOutgoingConnection(fileOutputNode); }
public MainPageViewModel() { _musicFiles = new ObservableCollection <StorageFile>(); CurrentFile = new GroorineFileViewModel(null); //_player = new Player(); InitializeAsync(); DeleteCommand = new DelegateCommand(async(o) => { if (!(o is StorageFile)) { return; } var sf = o as StorageFile; MusicFiles.Remove(sf); await sf.DeleteAsync(); }); ExportCommand = new DelegateCommand(async(o) => { if (!(o is StorageFile)) { return; } var sf = o as StorageFile; var fsp = new FileSavePicker(); fsp.FileTypeChoices.Add("Wave Audio", new List <string> { ".wav" }); fsp.FileTypeChoices.Add("Windows Media Audio", new List <string> { ".wma" }); fsp.FileTypeChoices.Add("MPEG 3 Audio", new List <string> { ".mp3" }); fsp.FileTypeChoices.Add("MPEG 4 Audio", new List <string> { ".m4a" }); fsp.SuggestedFileName = sf.DisplayName; fsp.CommitButtonText = "Bounce"; StorageFile file = await fsp.PickSaveFileAsync(); if (file == null) { return; } MediaEncodingProfile mediaEncodingProfile; switch (file.FileType.ToString().ToLowerInvariant()) { case ".wma": mediaEncodingProfile = MediaEncodingProfile.CreateWma(AudioEncodingQuality.High); break; case ".mp3": mediaEncodingProfile = MediaEncodingProfile.CreateMp3(AudioEncodingQuality.High); break; case ".wav": mediaEncodingProfile = MediaEncodingProfile.CreateWav(AudioEncodingQuality.High); break; case ".m4a": mediaEncodingProfile = MediaEncodingProfile.CreateM4a(AudioEncodingQuality.High); break; default: throw new ArgumentException(); } CreateAudioFileOutputNodeResult result = await _graph.CreateFileOutputNodeAsync(file, mediaEncodingProfile); if (result.Status != AudioFileNodeCreationStatus.Success) { // FileOutputNode creation failed await new MessageDialog("We couldn't create FileOutputNode, so we failed to bounce.").ShowAsync(); return; } AudioFileOutputNode node = result.FileOutputNode; _graph.Stop(); _frameInputNode.AddOutgoingConnection(node); Stop(); _player.Load(SmfParser.Parse(await sf.OpenStreamForReadAsync())); Play(); _graph.Start(); var a = new BouncingDialog(); #pragma warning disable CS4014 // この呼び出しを待たないため、現在のメソッドの実行は、呼び出しが完了する前に続行します a.ShowAsync(); #pragma warning restore CS4014 // この呼び出しを待たないため、現在のメソッドの実行は、呼び出しが完了する前に続行します while (_player.IsPlaying) { await Task.Delay(1); } _graph.Stop(); await node.FinalizeAsync(); _graph.Start(); a.Hide(); await new MessageDialog("Bouncing has successfully finished!").ShowAsync(); }); }
public async Task InitializeUWPAudio() { AudioGraphSettings settings = new AudioGraphSettings(AudioRenderCategory.Media); settings.QuantumSizeSelectionMode = QuantumSizeSelectionMode.LowestLatency; outputDevices = await DeviceInformation.FindAllAsync(MediaDevice.GetAudioRenderSelector()); foreach (DeviceInformation dev in outputDevices) { if (dev.Name.Contains(OMENHeadset)) { settings.PrimaryRenderDevice = dev; } } CreateAudioGraphResult result = await AudioGraph.CreateAsync(settings); if (result.Status != AudioGraphCreationStatus.Success) { // Cannot create graph return; } uwpAudioGraph = result.Graph; // Create a device output node CreateAudioDeviceOutputNodeResult deviceOutputNodeResult = await uwpAudioGraph.CreateDeviceOutputNodeAsync(); if (deviceOutputNodeResult.Status != AudioDeviceNodeCreationStatus.Success) { // Cannot create device output node return; } deviceOutputNode = deviceOutputNodeResult.DeviceOutputNode; // Create a device input node using the default audio input device CreateAudioDeviceInputNodeResult deviceInputNodeResult = await uwpAudioGraph.CreateDeviceInputNodeAsync(MediaCategory.Other); if (deviceInputNodeResult.Status != AudioDeviceNodeCreationStatus.Success) { // Cannot create device input node return; } deviceInputNode = deviceInputNodeResult.DeviceInputNode; #if false //For File recording not use now. FileSavePicker saveFilePicker = new FileSavePicker(); saveFilePicker.FileTypeChoices.Add("Pulse Code Modulation", new List <string>() { ".wav" }); saveFilePicker.FileTypeChoices.Add("Windows Media Audio", new List <string>() { ".wma" }); saveFilePicker.FileTypeChoices.Add("MPEG Audio Layer-3", new List <string>() { ".mp3" }); saveFilePicker.SuggestedFileName = "New Audio Track"; StorageFile file = await saveFilePicker.PickSaveFileAsync(); MediaEncodingProfile fileProfile = CreateMediaEncodingProfile(file); // Operate node at the graph format, but save file at the specified format CreateAudioFileOutputNodeResult fileOutputNodeResult = await uwpAudioGraph.CreateFileOutputNodeAsync(file, fileProfile); if (fileOutputNodeResult.Status != AudioFileNodeCreationStatus.Success) { // FileOutputNode creation failed //rootPage.NotifyUser(String.Format("Cannot create output file because {0}", fileOutputNodeResult.Status.ToString()), NotifyType.ErrorMessage); //fileButton.Background = new SolidColorBrush(Colors.Red); return; } fileOutputNode = fileOutputNodeResult.FileOutputNode; deviceInputNode.AddOutgoingConnection(fileOutputNode); #endif // Connect the input node to both output nodes deviceInputNode.AddOutgoingConnection(deviceOutputNode); }