As far as I have researched, Apple is loading an audio decoder based on a file extension.
I have an .m4a file which I have manually renamed to .aac extension. After that, the decoder fails to decode it, but the apple native audio player plays it!
ExtAudioFileRef audioFile;
ExtAudioFileOpenURL(url, &audioFile);
Calling this function ends up with an error.
How can I handle this situation using the Core Audio framework? Do I have to somehow configure a custom decoder? If yes, then how?
Thanks in advance.
Related
How one would play audio file in go language?
I have function and want sound to be played as notification when event happens.
I could not find anything about playing sound file in go lang just some web browser based music players but it wasnt helpful too much.
You could use the PortAudio Go bindings (go get github.com/gordonklaus/portaudio) for this.
You will have to build or install PortAudio on your system. Consult http://portaudio.com/docs/v19-doxydocs/tutorial_start.html for this.
A complete example for playing back a sound file is located at https://github.com/gordonklaus/portaudio/blob/master/examples/play.go
If it's an MP3 file, you can use go-mp3 Library. go-mp3 is popular library to play MP3; MP3 decoder is in pure Go.
Or this one, https://github.com/faiface/beep. Beep uses go-mp3 under the hood
I am trying to convert from wmv to mp4.
First of do I need to implement my IMFTransform to do this ?
Do i need to convert the video to MFVideoFormat_I420 ?
As far as I know if you create the topology correctly this should be handled automatically.
So I created my profile showed in the
http://msdn.microsoft.com/en-us/library/windows/desktop/ff819476%28v=vs.85%29.aspx
but i get a MF_E_TRANSCODE_NO_MATCHING_ENCODER.
I have windows 7 so, i should have the encoder.
Also Does anyone know where the source code for that tutorial is. It is not under SDK samples.
Thanks.
You don't show code - noone knows what is wrong.
Take a look at this transcoding sample, which comes with source code and does exactly what you are trying to do: transcoding from ASF into MP4.
http://blogs.msdn.com/b/mf/archive/2009/12/02/mfsimpleencode.aspx
MFSimpleEncode.exe - This is a command line tool that transcodes files
from one media format to another. The source code is provided to use
as a reference if you write your own transcode application. This tool
uses the Media Foundation transcode API, which was introduced in
Windows 7.
Examples:
Transcode ASF to MPEG-4:
MFSimpleencode.exe –i Input.wmv –o output.mp4 –p TranscodeProfileMPEG4.xml
Anyone know of a vorbis decoder library that can be used on Windows Phone 7?
The lack of native code interop make re-using any of the native code implementations difficult (impossible?) but if there are tricks to do that, I'm open to that as well.
There is a managed implementation for mono called csvorbis, it includes a sample which outputs a wav file this didn't need many changes to work with XNA's SoundEffect class. I did a whole track at once, this took a few seconds in the emulator so you may need to stream it using DynamicSoundEffect for better results. The mooncodecs folder has a codec for the desktop version based on csvorbis which may be worth a look aswell.
Ogg Vorbis is not a supported codec on Windows Phone 7 and the platform supports no way of adding support for custom codecs.
The options available are to write your own decoder/converter in managed code or to convert the original source files.
I suspect the second option will be easier.
How can I playback an audio stream from a Icecast on WP7
I have tried SMF, SmoothStreaming Client and the MediaElement.
None of these have worked. The formats are either asx or and wma.
Edit:
Recently I found a new stream. this stream works when I'm in the designer. But it does not work on the device. On the device the stream is opened and closed immediately.
this stream is from an IceCast server in MP3 format. with a ?.mp3 extention. or without.
When you are streaming live radio, the stream may be encoded by an IceCast server or ShoutCast server. To read these streams, you will need to decode the stream in memomry and pass it to the MediaElement once it has been decoded.
have a look at Mp3MediaStreamSource
and Audio output from Silverlight
I lost tons of time on this, and this is the best solution I found so far.
Having had a quick look at the Icecast web site (I'm not familiar with their service) it seems that most of what they offer for streamed audio is offered in MP3 format, but that they provide this as playlists in either M3U or XSPF format. You can't provide this to any of the built-in controls or classes in the WP7 framework, but you can parse the contents of the file and pass that to a MediaElement to play individual files.
The M3U file is a simple list of the consituent URLs, so is the simplest to deal with, but the XSPF format (which is an XML format) provides more information, such as the title. You can easily use the XDocument class to parse the XSPF file and then use LINQ to query the contents.
You're not adding the ?.mp3 to the pls file right, to the embedded URL? IF you are using the URL you get from the PLS/M3U file, you might need to append a file extension to it. You can often do this by adding ?ext=.mp3 or ?file.mp3 to the URL and it should play with MediaElement, as I read on the MS dev boards that people had been getting that to work with Shoutcast streams.
Does your stream work on the device when you unplug it from the computer? Media playing doesn't work while you're plugged into the Zune sync center.
Chris
I have a mp4 file which is to be used in an application. Currently i am in the stage of figuring out the technology to be used for this job. I am familiar with flex and am hoping that i be able to use it for the application. But i can not figure out a way to play the file in flex. I have been able to play the file only in windows media player and that required the installation of three codecs : Mp4Audio.ax, Mp4Video.ax, Mp4Src.ax.
As i see it, it will be very convenient if i could embed a windows media player plugin in flex or i could specify the audio and video codecs in the flash player.
Else i will have to learn .Net, i guess.
Kindly help me out. Thanks in advance.
If you are creating an air app then you are able to start the windows-media-player using the NativeProcess. Anyway if you have a flex web app then you do not have any options on this. :(
My recommendation: Convert the video file to a valid mp4 file that can be played by flex. I suggest you to check ffmpeg library (and you could use it to convert the file to H264 format)