public static ExtAudioFile OpenUrl(CFUrl url, out ExtAudioFileError error) { if (url == null) { throw new ArgumentNullException("url"); } return(OpenUrl(url.Handle, out error)); }
public static ExtAudioFile?OpenUrl(CFUrl url, out ExtAudioFileError error) { if (url is null) { ObjCRuntime.ThrowHelper.ThrowArgumentNullException(nameof(url)); } return(OpenUrl(url.Handle, out error)); }
public uint Read(uint numberFrames, AudioBuffers audioBufferList, out ExtAudioFileError status) { if (audioBufferList == null) { throw new ArgumentNullException("audioBufferList"); } status = ExtAudioFileRead(_extAudioFile, ref numberFrames, (IntPtr)audioBufferList); return(numberFrames); }
public uint Read(uint numberFrames, AudioBuffers audioBufferList, out ExtAudioFileError status) { if (audioBufferList is null) { ObjCRuntime.ThrowHelper.ThrowArgumentNullException(nameof(audioBufferList)); } status = ExtAudioFileRead(_extAudioFile, ref numberFrames, (IntPtr)audioBufferList); return(numberFrames); }
static ExtAudioFile OpenUrl(IntPtr urlHandle, out ExtAudioFileError error) { IntPtr ptr; error = ExtAudioFileOpenUrl(urlHandle, out ptr); if (error != ExtAudioFileError.OK || ptr == IntPtr.Zero) { return(null); } else { return(new ExtAudioFile(ptr)); } }
static ExtAudioFile CreateWithUrl(IntPtr urlHandle, AudioFileType fileType, AudioStreamBasicDescription inStreamDesc, AudioFileFlags flag, out ExtAudioFileError error) { IntPtr ptr; error = (ExtAudioFileError)ExtAudioFileCreateWithUrl(urlHandle, fileType, ref inStreamDesc, IntPtr.Zero, (uint)flag, out ptr); if (error != ExtAudioFileError.OK || ptr == IntPtr.Zero) { return(null); } else { return(new ExtAudioFile(ptr)); } }
public static ExtAudioFile CreateWithUrl(CFUrl url, AudioFileType fileType, AudioStreamBasicDescription inStreamDesc, AudioFileFlags flag, out ExtAudioFileError error) { if (url == null) { throw new ArgumentNullException("url"); } return(CreateWithUrl(url.Handle, fileType, inStreamDesc, flag, out error)); }
public static bool GetDataFromExtAudioFile(ExtAudioFile ext, AudioStreamBasicDescription outputFormat, int maxBufferSize, byte[] dataBuffer, out int dataBufferSize, out ALFormat format, out double sampleRate) { uint errorStatus = 0; uint bufferSizeInFrames = 0; dataBufferSize = 0; format = ALFormat.Mono16; sampleRate = 0; /* Compute how many frames will fit into our max buffer size */ bufferSizeInFrames = (uint)(maxBufferSize / outputFormat.BytesPerFrame); if (dataBuffer != null) { var audioBufferList = new AudioBuffers(maxBufferSize); // This a hack so if there is a problem speak to kjpou1 -Kenneth // the cleanest way is to copy the buffer to the pointer already allocated // but what we are going to do is replace the pointer with our own and restore it later // GCHandle meBePinned = GCHandle.Alloc(dataBuffer, GCHandleType.Pinned); IntPtr meBePointer = meBePinned.AddrOfPinnedObject(); audioBufferList.SetData(0, meBePointer); try { // Read the data into an AudioBufferList // errorStatus here returns back the amount of information read ExtAudioFileError extAudioFileError = ExtAudioFileError.OK; errorStatus = ext.Read(bufferSizeInFrames, audioBufferList, out extAudioFileError); if (errorStatus >= 0) { /* Success */ /* Note: 0 == bufferSizeInFrames is a legitimate value meaning we are EOF. */ /* ExtAudioFile.Read returns the number of frames actually read. * Need to convert back to bytes. */ dataBufferSize = (int)bufferSizeInFrames * outputFormat.BytesPerFrame; // Now we set our format format = outputFormat.ChannelsPerFrame > 1 ? ALFormat.Stereo16 : ALFormat.Mono16; sampleRate = outputFormat.SampleRate; } else { #if DEBUG Console.WriteLine("ExtAudioFile.Read failed, Error = " + errorStatus); #endif return(false); } } catch (Exception exc) { #if DEBUG Console.WriteLine("ExtAudioFile.Read failed: " + exc.Message); #endif return(false); } finally { // Don't forget to free our dataBuffer memory pointer that was pinned above meBePinned.Free(); // and restore what was allocated to beginwith audioBufferList.SetData(0, IntPtr.Zero); } } return(true); }
public uint Read(uint numberFrames, AudioBuffers audioBufferList, out ExtAudioFileError status) { if (audioBufferList == null) throw new ArgumentNullException ("audioBufferList"); status = ExtAudioFileRead (_extAudioFile, ref numberFrames, (IntPtr) audioBufferList); return numberFrames; }
public static ExtAudioFile?CreateWithUrl(CFUrl url, AudioFileType fileType, AudioStreamBasicDescription inStreamDesc, AudioFileFlags flag, out ExtAudioFileError error) { if (url is null) { ObjCRuntime.ThrowHelper.ThrowArgumentNullException(nameof(url)); } return(CreateWithUrl(url.Handle, fileType, inStreamDesc, flag, out error)); }
static ExtAudioFile OpenUrl(IntPtr urlHandle, out ExtAudioFileError error) { IntPtr ptr; error = ExtAudioFileOpenUrl (urlHandle, out ptr); if (error != ExtAudioFileError.OK || ptr == IntPtr.Zero) return null; else return new ExtAudioFile (ptr); }
static ExtAudioFile CreateWithUrl(IntPtr urlHandle, AudioFileType fileType, AudioStreamBasicDescription inStreamDesc, AudioFileFlags flag, out ExtAudioFileError error) { IntPtr ptr; error = (ExtAudioFileError) ExtAudioFileCreateWithUrl (urlHandle, fileType, ref inStreamDesc, IntPtr.Zero, (uint)flag, out ptr); if (error != ExtAudioFileError.OK || ptr == IntPtr.Zero) return null; else return new ExtAudioFile (ptr); }
public static ExtAudioFile OpenUrl(CFUrl url, out ExtAudioFileError error) { if (url == null) throw new ArgumentNullException ("url"); return OpenUrl (url.Handle, out error); }
public static ExtAudioFile CreateWithUrl(CFUrl url, AudioFileType fileType, AudioStreamBasicDescription inStreamDesc, AudioFileFlags flag, out ExtAudioFileError error) { if (url == null) throw new ArgumentNullException ("url"); return CreateWithUrl (url.Handle, fileType, inStreamDesc, flag, out error); }