'daki proje dosyasına kaydediyorum. Sesin cihaz mikrofonuna kaydedilmiş ancak nasıl kaydedileceğini bilmiyorum. MediaCapture
öğesinin yardımıyla ve eğer evet ise, o zaman nasıl yapmalı?Kaydedilmiş sesi UWP
cevap
Veritabanına nasıl yazılır ve bir dosyaya kaydedilir.
Bu kodu, test edilmediği için anında yazdım.
MediaEncodingProfile _Profile = Windows.Media.MediaProperties.MediaEncodingProfile.CreateMp3(AudioEncodingQuality.High);
MediaTranscoder _Transcoder = new Windows.Media.Transcoding.MediaTranscoder();
CancellationTokenSource _cts = new CancellationTokenSource();
private void ConvertSteamToMp3()
{
IRandomAccessStream audio = buffer.CloneStream(); //your recoreded InMemoryRandomAccessStream
var folder = KnownFolders.MusicLibrary.CreateFolderAsync("MyCapturedAudio", CreationCollisionOption.OpenIfExists);
outputFile = await folder.CreateFileAsync("record.mp3", CreationCollisionOption.GenerateUniqueName);
using (IRandomAccessStream fileStream = await outputFile.OpenAsync(FileAccessMode.ReadWrite))
{
var preparedTranscodeResult = await _Transcoder.PrepareStreamTranscodeAsync(audio, fileStream, _Profile);
if (preparedTranscodeResult.CanTranscode)
{
var progress = new Progress<double>(TranscodeProgress);
await preparedTranscodeResult.TranscodeAsync().AsTask(_cts.Token, progress);
}
using (IOutputStream outputStream = fileStream.GetOutputStreamAt(0))
{
using (DataWriter dataWriter = new DataWriter(outputStream))
{
//TODO: Replace "Bytes" with the type you want to write.
dataWriter.WriteBytes(bytes);
await dataWriter.StoreAsync();
dataWriter.DetachStream();
}
await outputStream.FlushAsync();
}
}
}
Yoksa sadece denedim ne bir dosya
public async SaveToFile()
{
IRandomAccessStream audio = buffer.CloneStream(); //your recoreded InMemoryRandomAccessStream
var folder = KnownFolders.MusicLibrary.CreateFolderAsync("MyCapturedAudio", CreationCollisionOption.OpenIfExists);
outputFile = await folder.CreateFileAsync("record.mp3", CreationCollisionOption.GenerateUniqueName);
using (IRandomAccessStream fileStream = await outputFile.OpenAsync(FileAccessMode.ReadWrite))
{
await RandomAccessStream.CopyAndCloseAsync(audio.GetInputStreamAt(0), fileStream.GetOutputStreamAt(0));
await audio.FlushAsync();
audio.Dispose();
}
});
}
Proje dosyalarını, özellikle/Assest/Sounds bölümünden kaydetmek istiyorum. Bunu nerede değiştirebilirim? –
'StorageFolder klasörünü kullanabilirsiniz = ApplicationData.Current.LocalFolder;' Yalnızca varlıklarını salt okunur olarak kaydetmeyi düşünmüyorum. – Stamos
Bunu Debug/AppX/Assets'e kaydetmeyi başardım. Teşekkür ederim! –
yılında akışı kaydetmek? Google'da aradınız mı? Ne buldun? Ne işe yaramadı? – Wjdavis5
Olası çoğaltılabilir [MediaElement dosyasını UWP'de proje dosyasına kaydet] (http://stackoverflow.com/questions/36619966/save-mediaelement-to-project-file-in-uwp) –
Bunu aradım ama yapmadım ' Hiçbir şey bulamadığımdan beri bir şey denedim. –