J'essaie de produire une pause et de reprendre des fonctionnalités en utilisant le code suivant.Impossible de créer une pause et de reprendre la fonctionnalité dans une application d'enregistrement audio. Application Store StoreWindows 8.1
private async void RecordBtn_Click(object sender, RoutedEventArgs e)
{
if (IsNewRecording)
{
mediaFile = await Windows.Storage.KnownFolders.MusicLibrary.CreateFileAsync("newFile.mp3", Windows.Storage.CreationCollisionOption.ReplaceExisting);
MediaEncodingProfile encodingProfile = null;
switch (SelectedFormat)
{
case AudioEncodingFormat.Mp3:
encodingProfile = MediaEncodingProfile.CreateMp3(SelectedQuality);
break;
case AudioEncodingFormat.Mp4:
encodingProfile = MediaEncodingProfile.CreateM4a(SelectedQuality);
break;
case AudioEncodingFormat.Wma:
encodingProfile = MediaEncodingProfile.CreateWma(SelectedQuality);
break;
default:
throw new ArgumentOutOfRangeException();
}
await CaptureMedia.StartRecordToStorageFileAsync(encodingProfile, mediaFile);
UpdateRecordingControls(RecordingMode.Recording);
DishTimer.Start();
IsNewRecording = false;
RecordBtn.Content = "Pause";
return;
}
else if (!IsNewRecording && !IsPaused)
{
UpdateRecordingControls(RecordingMode.Paused);
DishTimer.Stop();
await CaptureMedia.StopRecordAsync();
IsPaused = true;
RecordBtn.Content = "Resume";
return;
}
else if (!IsNewRecording && IsPaused)
{
MediaEncodingProfile encodingProfile = null;
encodingProfile = MediaEncodingProfile.CreateMp3(SelectedQuality);
await CaptureMedia.StartRecordToStorageFileAsync(encodingProfile, mediaFile);
DishTimer.Start();
IsPaused = false;
RecordBtn.Content = "Pause";
return;
}
}
Pour arrêter l'enregistrement.
private async void StopBtn_Click(object sender, RoutedEventArgs e)
{
await CaptureMedia.StopRecordAsync();
UpdateRecordingControls(RecordingMode.Stopped);
DishTimer.Stop();
InitTimer();
IsNewRecording = true;
RecordBtn.Content = "Record";
}
Et pour initialiser la MediaCapture.
private async Task InitMediaCapture()
{
CaptureMedia = new MediaCapture();
captureInitSettings = new MediaCaptureInitializationSettings();
captureInitSettings.StreamingCaptureMode = StreamingCaptureMode.Audio;
await CaptureMedia.InitializeAsync(captureInitSettings);
CaptureMedia.Failed += MediaCaptureOnFailed;
CaptureMedia.RecordLimitationExceeded += MediaCaptureOnRecordLimitationExceeded;
}
et l'événement OnNavigatedTo est comme suit.
protected async override void OnNavigatedTo(NavigationEventArgs e)
{
await InitMediaCapture();// Mic disconnection Exception thrown if no device is found
LoadAudioEncodings();
LoadAudioQualities();
UpdateRecordingControls(RecordingMode.Initializing);
InitTimer();
}
aussi l'autre problème que je suis face est que lorsque l'application est réduite au minimum ou la fenêtre est verrouillée et l'enregistrement démarre à nouveau MediaCapture
événement ayant échoué est élevé, ce qui donne le message d'erreur suivant. Le message d'erreur est: "Le périphérique multimédia ne peut pas passer de l'état arrêté à l'état en pause", même si la méthode Pause n'est pas prise en charge dans Windows 8.1 par la méthode MediaCapture
.
Actuellement, l'enregistrement est également enregistré dans le dossier Bibliothèque musicale, mais que puis-je faire pour enregistrer l'enregistrement dans un dossier particulier du lecteur C.
S'il vous plaît aidez-moi!
merci mais, ce que je veux faire est d'enregistrer le fichier à un endroit de mon choix sans demander un FilePicker, quelque chose comme je donne le chemin complet du fichier à sauvegarder et le fichier est enregistré dans cet emplacement. –