コード例 #1
0
ファイル: audiooutput.cpp プロジェクト: FLYKingdom/vlc
bool AudioOutput::setOutputDevice(int device)
{
    if (i_device == device)
        return true;

    const QList<AudioDevice> deviceList = p_backend->deviceManager()->audioOutputDevices();
    if (device >= 0 && device < deviceList.size()) {

        i_device = device;
        const QByteArray deviceName = deviceList.at(device).vlcId;
        libvlc_audio_output_set(vlc_instance, (char *) deviceList.at(device).vlcId.data());
        qDebug() << "set aout " << deviceList.at(device).vlcId.data();
//         if (deviceName == DEFAULT_ID) {
//             libvlc_audio_device_set(p_vlc_instance, DEFAULT, vlc_exception);
//             vlcExceptionRaised();
//         } else if (deviceName.startsWith(ALSA_ID)) {
//             qDebug() << "setting ALSA " << deviceList.at(device).hwId.data();
//             libvlc_audio_device_set(p_vlc_instance, ALSA, vlc_exception);
//             vlcExceptionRaised();
//             libvlc_audio_alsa_device_set(p_vlc_instance,
//                                          deviceList.at(device).hwId,
//                                          vlc_exception);
//             vlcExceptionRaised();
    }

    return true;
}
コード例 #2
0
void AudioOutputStreamHandler::SetOutputParameters(String type, String typeDevice, String device, bool isAudioOutputToStream)
{
    this->isAudioOutputToStream = isAudioOutputToStream;

    if (isAudioOutputToStream) {
        libvlc_audio_set_callbacks(mediaPlayer, audioPlayCallbackProxy, nullptr, nullptr, nullptr, nullptr, this); 
    } else {
        auto *node = libvlc_audio_output_list_get(vlc);
        
        char *_type = type.CreateUTF8String();
        char *_typeDevice = typeDevice.CreateUTF8String();
        char *_device = device.CreateUTF8String();

        if (_type) {
            int i = libvlc_audio_output_set(mediaPlayer, _type);
            if (_device) {
                libvlc_audio_output_device_set(mediaPlayer, _typeDevice, _device);
            }
        }

        if (_type != nullptr) {
            Free(_type);
        }
        if (_typeDevice != nullptr) {
            Free(_typeDevice);
        }
        if (_device != nullptr) {
            Free(_device);
        }
    }
}
コード例 #3
0
jboolean
Java_org_videolan_libvlc_MediaPlayer_nativeSetAudioOutput(JNIEnv *env,
                                                          jobject thiz,
                                                          jstring jaout)
{
    const char* psz_aout;
    int i_ret;
    vlcjni_object *p_obj = VLCJniObject_getInstance(env, thiz);

    if (!p_obj)
        return false;

    if (!jaout || !(psz_aout = (*env)->GetStringUTFChars(env, jaout, 0)))
    {
        throw_IllegalArgumentException(env, "aout invalid");
        return false;
    }

    i_ret = libvlc_audio_output_set(p_obj->u.p_mp, psz_aout);
    (*env)->ReleaseStringUTFChars(env, jaout, psz_aout);

    return i_ret == 0 ? true : false;
}