2

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

ディスクに保存する代わりにインメモリ トランスコード操作を実行するサンプルを探しています。

あなたの助けに感謝。

4

0 に答える 0