#include "l_bitmap.h"
L_LTFIL_API L_INT L_GetExtensionAudio(pExtensionList, nStream, ppBuffer, puSize)
Gets the embedded audio data from the specified extension list.
Pointer to the EXTENSIONLIST structure that contains the audio data to get.
Index of the audio stream to retrieve. The extensions may have more than one audio stream. This index is 0-based. Therefore, the first stream is stream 0, the second stream is stream 1, etc. To retrieve all the audio streams, retrieve the streams one by one until an error is returned.
Pointer to be updated with a pointer to the retrieved audio data. This pointer will point into the pExtensionList
. Therefore, this pointer will be valid as long as pExtensionList is valid. The memory will be freed when L_FreeExtensions is called, so do not try to free this memory.
Pointer to a variable to be updated with the size of the audio data.
Value | Meaning |
---|---|
SUCCESS | The function was successful. |
< 1 | An error occurred. Refer to Return Codes. |
The audio data is stored inside extensions in the WAVE format. The audio data can be played directly from memory, or the data can be written to a disk file and played from the disk. When writing the audio data to a disk file, give the file a .WAV extension.
Required DLLs and Libraries
Win32, x64, Linux.
L_INT GetExtensionAudioExample(HWND hWnd,
L_TCHAR * pszName,
pBITMAPHANDLE pBitmap)
{
UNREFERENCED_PARAMETER(pBitmap);
pEXTENSIONLIST pExtensionList;
L_INT nRet;
L_TCHAR s[300];
nRet = L_ReadFileExtensions(pszName, &pExtensionList, NULL);
if(nRet != SUCCESS)
{
wsprintf(s, TEXT("Error %d getting extensions!"), nRet);
MessageBox(hWnd, s, TEXT("ERROR"), MB_OK);
return nRet;
}
if(pExtensionList->uFlags & EXTENSION_AUDIO)
{
L_UCHAR *pAudioData;
L_SIZE_T uSize;
FILE *fd;
nRet = L_GetExtensionAudio(pExtensionList, 0, &pAudioData, &uSize);
if(nRet != SUCCESS)
{
wsprintf(s, TEXT("Error %d getting the audio data"), nRet);
MessageBox(hWnd, s, TEXT("ERROR"), MB_OK);
}
else
{
_tfopen_s(&fd, MAKE_IMAGE_PATH(TEXT("exif.wav")), TEXT("wb"));
if(fd)
{
fwrite(pAudioData, uSize, 1, fd);
fclose(fd);
}
}
}
L_FreeExtensions(pExtensionList);
return SUCCESS;
}
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document