Media Foundation を使用して、MP3 形式から WAV (PCM) 形式へのメディア トランスコーディング操作をインメモリで実行したいと考えています。
私は以下のようにコードを試しました:
//Initialize MediaStreamSource with location of MP3 file
var mediaStream = new MediaStreamSource(mp3File);
//Create a "dummy" wav file to attach to IRandomAccessStream
StorageFile _OutputFile2 = await
KnownFolders.VideosLibrary.CreateFileAsync("Test.wav",
CreationCollisionOption.GenerateUniqueName);
IRandomAccessStream iras =
_OutputFile2.OpenAsync(FileAccessMode.ReadWrite).AsTask().Result;
//Setup the transcode operation to convert from MP3 to WAV
_Profile = MediaEncodingProfile.CreateWav(audioEncodingProfile);
var preparedTranscodeResult = await
_Transcoder.PrepareMediaStreamSourceTranscodeAsync(mediaStream, iras,
_Profile);
try
{
if (preparedTranscodeResult.CanTranscode)
{
var progress = new Progress<double>(TranscodeProgress);
await
preparedTranscodeResult.TranscodeAsync().AsTask(_cts.Token,
progress);
}
else
{
TranscodeFailure(preparedTranscodeResult.FailureReason);
}
}
catch (Exception ex)
{
TranscodeError(ex.Message);
}
トランスコードしようとすると、次のエラーが発生します。
このオブジェクトは、要求された操作を実行する前に初期化する必要があります。
同様の問題があるこのリンクも参照しました 。 -feed-into-mediatranscoderpreparestreamtranscodeasync?forum=winappswithnativecode
ディスクに保存する代わりにインメモリ トランスコード操作を実行するサンプルを探しています。
あなたの助けに感謝。