Esempio n. 1
0
//--------------------------------------------------------------------------------------------------
static void PlayFile
(
    const char* audioFilePathPtr,
    bool        isInLoop
)
{
    char filePathPtr[100]={0};

    IsInLoop = isInLoop;

    if (AudioFileFormat == LE_AUDIO_AMR)
    {
        snprintf(filePathPtr, 100, "%s.amr", audioFilePathPtr);
    }
    else
    {
        snprintf(filePathPtr, 100, "%s.wav", audioFilePathPtr);
    }

    if ((AudioFileFd=open(filePathPtr, O_RDONLY)) == -1)
    {
        LE_ERROR("Open file %s failure: errno.%d (%s)",  filePathPtr, errno, strerror(errno));
        exit(0);
    }
    else
    {
        LE_INFO("Play file %s %s with AudioFileFd.%d",
                ((IsInLoop) ? "IN LOOP" : "ONCE"),
                filePathPtr,
                AudioFileFd);
    }

    LE_ERROR_IF((le_audio_PlayFile(PlayerRef, AudioFileFd) != LE_OK), "Cannot play file");
}
Esempio n. 2
0
//--------------------------------------------------------------------------------------------------
static void MyMediaEventHandler
(
    le_audio_StreamRef_t          streamRef,
    le_audio_MediaEvent_t         event,
    void*                         contextPtr
)
{
    switch(event)
    {
        case LE_AUDIO_MEDIA_NO_MORE_SAMPLES:
            LE_INFO("Media event is LE_AUDIO_MEDIA_NO_MORE_SAMPLES.");
            break;

        case LE_AUDIO_MEDIA_ENDED:
            LE_INFO("Media event is LE_AUDIO_MEDIA_ENDED.");
            if (IsInLoop)
            {
                // Start playing audio file in loop
                LE_INFO("Play in loop...");
                LE_ERROR_IF((le_audio_PlayFile(streamRef, LE_AUDIO_NO_FD) != LE_OK),
                            "Cannot play file");
            }

            if(IsVoicePromptStart)
            {
                PlayFile(DIALING, true);
                IsVoicePromptStart = false;
                IsDialing = true;
            }
            else if(IsDialing)
            {
                // Initiate the call
                LE_INFO("Start call");
                le_mcc_Start(TestCallRef);
                IsDialing = false;
            }
            break;

        case LE_AUDIO_MEDIA_ERROR:
            LE_INFO("Media event is LE_AUDIO_MEDIA_ERROR.");
        break;
        default:
            LE_INFO("Media event is %d.", event);
        break;
    }
}
Esempio n. 3
0
//--------------------------------------------------------------------------------------------------
static void ConnectAudioToFileLocalPlay
(
    void
)
{
    le_result_t res;
    if ((AudioFileFd=open(AudioFileRecPath, O_RDWR)) == -1)
    {
        LE_ERROR("Open file %s failure: errno.%d (%s)",  AudioFileRecPath, errno, strerror(errno));
    }
    else
    {
        LE_INFO("Open file %s with AudioFileFd.%d",  AudioFileRecPath, AudioFileFd);
    }

    // Play local on output connector.
    FileAudioRef = le_audio_OpenPlayer();
    LE_ERROR_IF((FileAudioRef==NULL), "OpenFilePlayback returns NULL!");

    MediaHandlerRef = le_audio_AddMediaHandler(FileAudioRef, MyMediaEventHandler, NULL);
    LE_ERROR_IF((MediaHandlerRef==NULL), "AddMediaHandler returns NULL!");

    if (FileAudioRef && AudioOutputConnectorRef)
    {
        res = le_audio_Connect(AudioOutputConnectorRef, FileAudioRef);
        if(res!=LE_OK)
        {
            LE_ERROR("Failed to connect FilePlayback on output connector!");
            return;
        }

        LE_INFO("FilePlayback is now connected.");
        res = le_audio_PlayFile(FileAudioRef, AudioFileFd);

        if(res != LE_OK)
        {
            LE_ERROR("Failed to play the file!");
        }
        else
        {
            LE_INFO("File is now playing");
        }
    }
}