Quantcast
Channel: naudio Work Item Rss Feed
Viewing all articles
Browse latest Browse all 738

Commented Unassigned: Exception When Calling MediaFoundationEncoder.EncodeToWma [16406]

$
0
0
I have been trying to use the new media foundation facilities in NAudio version 1.7 pre release (downloaded 2013-08-05 @ 15:20 UTC) and have come across the following issue. I am writing a program called TelephoneTrack which needs to convert a recorded WAV file into either a M4A or WMA file. In my code when I call my routine ConvertWAVToM4A routine it works but when I call the ConvertWAVToWMA it fails.

I know this is pre-release but I thought you would like to know about this issue. NAudio is an excellent library by the way and I am very impressed with your efforts so far with the media foundation add-on.

```
public static void ConvertWAVToM4A(string outputFile, string inputFile)
{
FileInfo fileInfo = new FileInfo(outputFile);
if (fileInfo.Extension.ToUpper() != ".M4A")
{
fileInfo = new FileInfo(outputFile + ".m4a");
}

if (fileInfo.Exists)
{
fileInfo.Delete();
}

using (var reader = new MediaFoundationReader(inputFile))
{
MediaFoundationEncoder.EncodeToAac(reader, fileInfo.FullName, 192000);
}
}


public static void ConvertWAVToWMA(string outputFile, string inputFile)
{

FileInfo fileInfo = new FileInfo(outputFile);
if (fileInfo.Extension.ToUpper() != ".WMA")
{
fileInfo = new FileInfo(outputFile + ".wma");
}

if (fileInfo.Exists)
{
fileInfo.Delete();
}

using (var reader = new MediaFoundationReader(inputFile))
{
MediaFoundationEncoder.EncodeToWma(reader, fileInfo.FullName, 192000);
}
}

```
It throws an exception:

Exception has been thrown by the target of an invocation.

InnerException
Message:Object reference not set to an instance of an object.
Source:NAudio
StackTrace:
at NAudio.Wave.MediaFoundationEncoder.Dispose(Boolean disposing) in c:\SVN\NAudio\NAudio\Wave\WaveOutputs\MediaFoundationEncoder.cs:line 278
at NAudio.Wave.MediaFoundationEncoder.Dispose() in c:\SVN\NAudio\NAudio\Wave\WaveOutputs\MediaFoundationEncoder.cs:line 289
at NAudio.Wave.MediaFoundationEncoder.EncodeToWma(IWaveProvider inputProvider, String outputFile, Int32 desiredBitRate) in c:\SVN\NAudio\NAudio\Wave\WaveOutputs\MediaFoundationEncoder.cs:line 84
at TelephoneTrack.ApplicationCommon.ConvertWAVToWMA(String outputFile, String inputFile) in c:\SVN\TelephoneTrack\TelephoneTrack\ApplicationCommon.cs:line 755
at TelephoneTrack.View.MainView..ctor() in c:\SVN\TelephoneTrack\TelephoneTrack\View\MainView.xaml.cs:line 47
Comments: I've improved the error messages to make it clearer what is going wrong in this circumstance. If you can't encode WMA, it seems more likely to me that it is an unsupported input sample rate or channel count rather than the codec missing. WMA encoders are usually supplied as standard on Windows (except on some Server versions)

Viewing all articles
Browse latest Browse all 738

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>