这篇教程C++ AudioOutputUnitStart函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中AudioOutputUnitStart函数的典型用法代码示例。如果您正苦于以下问题:C++ AudioOutputUnitStart函数的具体用法?C++ AudioOutputUnitStart怎么用?C++ AudioOutputUnitStart使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了AudioOutputUnitStart函数的28个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: AudioOutputUnitStartvoid AudioDestinationMac::start(){ OSStatus result = AudioOutputUnitStart(m_outputUnit); if (!result) m_isPlaying = true; // LabSound result = AudioOutputUnitStart(m_input->m_inputUnit);}
开发者ID:cor3ntin,项目名称:LabSound,代码行数:10,
示例2: ca_start_capturestatic void ca_start_capture(ALCdevice *device){ ca_data *data = (ca_data*)device->ExtraData; OSStatus err = AudioOutputUnitStart(data->audioUnit); if(err != noErr) ERR("AudioOutputUnitStart failed/n");}
开发者ID:carriercomm,项目名称:openal-soft-chowdren,代码行数:7,
示例3: zeromemError AudioDriverIphone::init() { active = false; channels = 2; AudioStreamBasicDescription strdesc; strdesc.mFormatID = kAudioFormatLinearPCM; strdesc.mFormatFlags = kLinearPCMFormatFlagIsSignedInteger | kLinearPCMFormatFlagIsPacked; strdesc.mChannelsPerFrame = channels; strdesc.mSampleRate = 44100; strdesc.mFramesPerPacket = 1; strdesc.mBitsPerChannel = 16; strdesc.mBytesPerFrame = strdesc.mBitsPerChannel * strdesc.mChannelsPerFrame / 8; strdesc.mBytesPerPacket = strdesc.mBytesPerFrame * strdesc.mFramesPerPacket; OSStatus result = noErr; AURenderCallbackStruct callback; AudioComponentDescription desc; AudioComponent comp = NULL; const AudioUnitElement output_bus = 0; const AudioUnitElement bus = output_bus; const AudioUnitScope scope = kAudioUnitScope_Input; zeromem(&desc, sizeof(desc)); desc.componentType = kAudioUnitType_Output; desc.componentSubType = kAudioUnitSubType_RemoteIO; /* !!! FIXME: ? */ comp = AudioComponentFindNext(NULL, &desc); desc.componentManufacturer = kAudioUnitManufacturer_Apple; result = AudioComponentInstanceNew(comp, &audio_unit); ERR_FAIL_COND_V(result != noErr, FAILED); ERR_FAIL_COND_V(comp == NULL, FAILED); result = AudioUnitSetProperty(audio_unit, kAudioUnitProperty_StreamFormat, scope, bus, &strdesc, sizeof(strdesc)); ERR_FAIL_COND_V(result != noErr, FAILED); zeromem(&callback, sizeof(AURenderCallbackStruct)); callback.inputProc = &AudioDriverIphone::output_callback; callback.inputProcRefCon = this; result = AudioUnitSetProperty(audio_unit, kAudioUnitProperty_SetRenderCallback, scope, bus, &callback, sizeof(callback)); ERR_FAIL_COND_V(result != noErr, FAILED); result = AudioUnitInitialize(audio_unit); ERR_FAIL_COND_V(result != noErr, FAILED); result = AudioOutputUnitStart(audio_unit); ERR_FAIL_COND_V(result != noErr, FAILED); const int samples = 1024; samples_in = memnew_arr(int32_t, samples); // whatever buffer_frames = samples / channels; return FAILED;};
开发者ID:AMG194,项目名称:godot,代码行数:60,
示例4: audio_unit_interruption_listener/* interruption listeners */void audio_unit_interruption_listener(void *closure, UInt32 inInterruptionState){ OSStatus err = 0; aubio_audio_unit_t *o = (aubio_audio_unit_t *) closure; AudioUnit this_unit = o->audio_unit; if (inInterruptionState == kAudioSessionEndInterruption) { AUBIO_WRN("audio_unit: session interruption ended/n"); err = AudioSessionSetActive(true); if (err) { AUBIO_ERR("audio_unit: could not make session active after interruption (%d)/n", (int)err); goto fail; } err = AudioOutputUnitStart(this_unit); if (err) { AUBIO_ERR("audio_unit: failed starting unit (%d)/n", (int)err); goto fail; } } if (inInterruptionState == kAudioSessionBeginInterruption) { AUBIO_WRN("audio_unit: session interruption started/n"); err = AudioOutputUnitStop(this_unit); if (err) { AUBIO_ERR("audio_unit: could not stop unit at interruption (%d)/n", (int)err); goto fail; } err = AudioSessionSetActive(false); if (err) { AUBIO_ERR("audio_unit: could not make session inactive after interruption (%d)/n", (int)err); goto fail; } }fail: return;}
开发者ID:Craig-J,项目名称:RhythMIR,代码行数:36,
示例5: AudioOutputUnitStartvoid AudioDestinationMac::start(){ OSStatus result = AudioOutputUnitStart(m_outputUnit); if (!result) setIsPlaying(true);}
开发者ID:caiolima,项目名称:webkit,代码行数:7,
示例6: mainint main (int argc, const char * argv[]) { MyAUGraphPlayer player = {0}; // create the input unit CreateInputUnit(&player); // build a graph with output unit CreateMyAUGraph(&player); #ifdef PART_II // configure the speech synthesizer PrepareSpeechAU(&player); #endif // start playing CheckError (AudioOutputUnitStart(player.inputUnit), "AudioOutputUnitStart failed"); CheckError(AUGraphStart(player.graph), "AUGraphStart failed"); // and wait printf("Capturing, press <return> to stop:/n"); getchar(); cleanup: AUGraphStop (player.graph); AUGraphUninitialize (player.graph); AUGraphClose(player.graph); }
开发者ID:Contexter,项目名称:learning-core-audio-xcode4-projects,代码行数:31,
示例7: CoreAudioDrv_PCM_BeginPlaybackint CoreAudioDrv_PCM_BeginPlayback(char *BufferStart, int BufferSize, int NumDivisions, void ( *CallBackFunc )( void ) ){ if (!Initialised) { ErrorCode = CAErr_Uninitialised; return CAErr_Error; } if (Playing) { CoreAudioDrv_PCM_StopPlayback(); } MixBuffer = BufferStart; MixBufferSize = BufferSize; MixBufferCount = NumDivisions; MixBufferCurrent = 0; MixBufferUsed = 0; MixCallBack = CallBackFunc; // prime the buffer MixCallBack(); AudioOutputUnitStart(output_audio_unit); Playing = 1; return CAErr_Ok;}
开发者ID:TermiT,项目名称:sw-redux,代码行数:28,
示例8: sa_stream_resumeintsa_stream_resume(sa_stream_t *s) { if (s == NULL || s->output_unit == NULL) { return SA_ERROR_NO_INIT; } pthread_mutex_lock(&s->mutex); /* * The audio device resets its mSampleTime counter after pausing, * so we need to clear our tracking value to keep that in sync. */ s->total_bytes_played += s->bytes_played; s->bytes_played = 0; pthread_mutex_unlock(&s->mutex); /* * Don't hold the mutex when starting the audio device, because it is * possible to deadlock with this thread holding mutex then waiting on an * internal Core Audio lock, and with the callback thread holding the Core * Audio lock and waiting on the mutex. */ if (AudioOutputUnitStart(s->output_unit) != 0) { return SA_ERROR_SYSTEM; } s->playing = TRUE; return SA_SUCCESS;}
开发者ID:lofter2011,项目名称:Icefox,代码行数:29,
示例9: audiounits_startstatic int audiounits_start(void *usr) { au_instance_t *ap = (au_instance_t*) usr; OSStatus err; if (ap->kind == AI_RECORDER) {#if defined(MAC_OS_X_VERSION_10_5) && (MAC_OS_X_VERSION_MIN_REQUIRED>=MAC_OS_X_VERSION_10_5) err = AudioDeviceStart(ap->inDev, ap->inIOProcID);#else err = AudioDeviceStart(ap->inDev, inputRenderProc);#endif if (err) Rf_error("unable to start recording (%08x)", err); } else { AURenderCallbackStruct renderCallback = { outputRenderProc, usr }; ap->done = NO; /* set format */ ap->fmtOut.mSampleRate = ap->sample_rate; err = AudioUnitSetProperty(ap->outUnit, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Input, 0, &ap->fmtOut, sizeof(ap->fmtOut)); if (err) Rf_error("unable to set output audio format (%08x)", err); /* set callback */ err = AudioUnitSetProperty(ap->outUnit, kAudioUnitProperty_SetRenderCallback, kAudioUnitScope_Input, 0, &renderCallback, sizeof(renderCallback)); if (err) Rf_error("unable to register audio callback (%08x)", err); /* start audio */ err = AudioOutputUnitStart(ap->outUnit); if (err) Rf_error("unable to start playback (%08x)", err); } return 1;}
开发者ID:brezniczky,项目名称:audio,代码行数:26,
示例10: write_coreaudiostatic int write_coreaudio(audio_output_t *ao, unsigned char *buf, int len){ mpg123_coreaudio_t* ca = (mpg123_coreaudio_t*)ao->userptr; int written; /* If there is no room, then sleep for half the length of the FIFO */ while (sfifo_space( &ca->fifo ) < len ) { usleep( (FIFO_DURATION/2) * 1000000 ); } /* Store converted audio in ring buffer */ written = sfifo_write( &ca->fifo, (char*)buf, len); if (written != len) { warning( "Failed to write audio to ring buffer" ); return -1; } /* Start playback now that we have something to play */ if(!ca->play) { if(AudioOutputUnitStart(ca->outputUnit)) { error("AudioOutputUnitStart failed"); return(-1); } ca->play = 1; } return len;}
开发者ID:abraxasrex,项目名称:mpk-mini-js,代码行数:29,
示例11: ca_start_wstatic void ca_start_w(CAData *d){ OSStatus err= noErr; if (d->write_started==FALSE){ AudioStreamBasicDescription inASBD; int i; i = ca_open_w(d); if (i<0) return; inASBD = d->caOutASBD; inASBD.mSampleRate = d->rate; inASBD.mFormatID = kAudioFormatLinearPCM; inASBD.mFormatFlags = kAudioFormatFlagIsSignedInteger | kAudioFormatFlagIsPacked; if (htonl(0x1234) == 0x1234) inASBD.mFormatFlags |= kLinearPCMFormatFlagIsBigEndian; inASBD.mChannelsPerFrame = d->stereo ? 2 : 1; inASBD.mBytesPerPacket = (d->bits / 8) * inASBD.mChannelsPerFrame; inASBD.mBytesPerFrame = (d->bits / 8) * inASBD.mChannelsPerFrame; inASBD.mFramesPerPacket = 1; inASBD.mBitsPerChannel = d->bits; err = AudioConverterNew( &inASBD, &d->caOutASBD, &d->caOutConverter); if(err != noErr) ms_error("AudioConverterNew %x %d", err, inASBD.mBytesPerFrame); else CAShow(d->caOutConverter); if (inASBD.mChannelsPerFrame == 1 && d->caOutASBD.mChannelsPerFrame == 2) { if (d->caOutConverter) { // This should be as large as the number of output channels, // each element specifies which input channel's data is routed to that output channel SInt32 channelMap[] = { 0, 0 }; err = AudioConverterSetProperty(d->caOutConverter, kAudioConverterChannelMap, 2*sizeof(SInt32), channelMap); } } memset((char*)&d->caOutRenderCallback, 0, sizeof(AURenderCallbackStruct)); d->caOutRenderCallback.inputProc = writeRenderProc; d->caOutRenderCallback.inputProcRefCon = d; err = AudioUnitSetProperty (d->caOutAudioUnit, kAudioUnitProperty_SetRenderCallback, kAudioUnitScope_Input, 0, &d->caOutRenderCallback, sizeof(AURenderCallbackStruct)); if(err != noErr) ms_error("AudioUnitSetProperty %x", err); if(err == noErr) { if(AudioOutputUnitStart(d->caOutAudioUnit) == noErr) d->write_started=TRUE; } }}
开发者ID:biddyweb,项目名称:mediastream-plus,代码行数:59,
示例12: coreaudio_startstatic bool coreaudio_start(void *data){ coreaudio_t *dev = (coreaudio_t*)data; if (!dev) return false; dev->is_paused = (AudioOutputUnitStart(dev->dev) == noErr) ? false : true; return dev->is_paused ? false : true;}
开发者ID:ColinKinloch,项目名称:RetroArch,代码行数:8,
示例13: AudioOutputUnitStartvoid AudioLoopImplCocoa::start(){ if (initialized) { OSStatus err = AudioOutputUnitStart(audioUnit); if (err) printf("AudioOutputUnitStart ERROR: %d/n", (int)err); }}
开发者ID:arielm,项目名称:new-chronotext-toolkit,代码行数:8,
示例14: OFXAU_RET_BOOL// ----------------------------------------------------------bool ofxAudioUnitInput::start()// ----------------------------------------------------------{ if(!_impl->isReady) _impl->isReady = configureInputDevice(); if(!_impl->isReady) return false; OFXAU_RET_BOOL(AudioOutputUnitStart(*_unit), "starting hardware input unit");}
开发者ID:microcosm,项目名称:ofxAudioUnit,代码行数:9,
示例15: ao_plugin_playint ao_plugin_play(ao_device *device, const char *output_samples, uint_32 num_bytes){ ao_macosx_internal *internal = (ao_macosx_internal *) device->internal; int err; unsigned int bytesToCopy; unsigned int firstEmptyByteOffset, emptyByteCount; while (num_bytes) { // Get a consistent set of data about the available space in the queue, // figure out the maximum number of bytes we can copy in this chunk, // and claim that amount of space pthread_mutex_lock(&mutex); // Wait until there is some empty space in the queue emptyByteCount = internal->bufferByteCount - internal->validByteCount; while (emptyByteCount == 0) { if(!internal->started){ err = AudioOutputUnitStart(internal->outputAudioUnit); adebug("Starting audio output unit/n"); if(err){ pthread_mutex_unlock(&mutex); aerror("Failed to start audio output => %d/n",(int)err); return 0; } internal->started = true; } err = pthread_cond_wait(&cond, &mutex); if (err) adebug("pthread_cond_wait() => %d/n",err); emptyByteCount = internal->bufferByteCount - internal->validByteCount; } // Compute the offset to the first empty byte and the maximum number of // bytes we can copy given the fact that the empty space might wrap // around the end of the queue. firstEmptyByteOffset = (internal->firstValidByteOffset + internal->validByteCount) % internal->bufferByteCount; if (firstEmptyByteOffset + emptyByteCount > internal->bufferByteCount) bytesToCopy = MIN(num_bytes, internal->bufferByteCount - firstEmptyByteOffset); else bytesToCopy = MIN(num_bytes, emptyByteCount); // Copy the bytes and get ready for the next chunk, if any memcpy(internal->buffer + firstEmptyByteOffset, output_samples, bytesToCopy); num_bytes -= bytesToCopy; output_samples += bytesToCopy; internal->validByteCount += bytesToCopy; pthread_mutex_unlock(&mutex); } return 1;}
开发者ID:MisterZeus,项目名称:libao,代码行数:57,
示例16: resume_coreaudiostatic void resume_coreaudio(audio_output_t *ao){ mpg123_coreaudio_t* ca = (mpg123_coreaudio_t*)ao->userptr; if (!ca->play) { AudioOutputUnitStart(ca->outputUnit); ca->play = 1; }}
开发者ID:meduz,项目名称:python-audio-tools,代码行数:9,
示例17: AudioOutputUnitStartError AudioDriverCoreAudio::capture_start() { OSStatus result = AudioOutputUnitStart(input_unit); if (result != noErr) { ERR_PRINTS("AudioOutputUnitStart failed, code: " + itos(result)); } return OK;}
开发者ID:Calinou,项目名称:godot,代码行数:9,
示例18: OSSpinLockLockvoid CoreAudioOutput::start(){ this->clearBuffer(); OSSpinLockLock(this->_spinlockAU); AudioUnitReset(this->_au, kAudioUnitScope_Global, 0); AudioOutputUnitStart(this->_au); OSSpinLockUnlock(this->_spinlockAU);}
开发者ID:MoochMcGee,项目名称:desmume-plus,代码行数:9,
示例19: audiounit_stream_startstatic intaudiounit_stream_start(cubeb_stream * stm){ OSStatus r; r = AudioOutputUnitStart(stm->unit); assert(r == 0); stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_STARTED); return CUBEB_OK;}
开发者ID:BrunoReX,项目名称:palemoon,代码行数:9,
示例20: AudioOutputUnitStartbool CCoreAudioUnit::Start(){ if (!m_audioUnit) return false; AudioOutputUnitStart(m_audioUnit); return true;}
开发者ID:midripps,项目名称:xbmc,代码行数:9,
示例21: AudioOutputUnitStartvoid AudioDriverCoreAudio::start() { if (!active) { OSStatus result = AudioOutputUnitStart(audio_unit); if (result != noErr) { ERR_PRINT(("AudioOutputUnitStart failed, code: " + itos(result)).utf8().get_data()); } else { active = true; } }};
开发者ID:DSeanLaw,项目名称:godot,代码行数:10,
示例22: AudioOutputUnitStartint CoreAudioDriver::connect(){ OSStatus err; err = AudioOutputUnitStart( m_outputUnit ); if ( err != noErr ) { ERRORLOG( "Could not start AudioUnit" ); } m_bIsRunning = true; return 0;}
开发者ID:AdamFf,项目名称:hydrogen,代码行数:11,
示例23: coreaudio_unpausestatic intcoreaudio_unpause(void) { trace("coreaudio_unpause/n"); OSStatus err = AudioOutputUnitStart (output_unit); if (err) { trace ("AudioOutputUnitStart= %s/n", GetMacOSStatusErrorString(err)); return -1; } state = OUTPUT_STATE_PLAYING; return 0;}
开发者ID:amitkr,项目名称:deadbeef,代码行数:12,
示例24: LOGvoid AudioDestinationIOS::start(){ LOG(Media, "AudioDestinationIOS::start"); if (!m_mediaSession->clientWillBeginPlayback()) { LOG(Media, " returning because of interruption"); return; } OSStatus result = AudioOutputUnitStart(m_outputUnit); if (!result) m_isPlaying = true;}
开发者ID:AndriyKalashnykov,项目名称:webkit,代码行数:12,
示例25: aubio_audio_unit_startsint_t aubio_audio_unit_start(aubio_audio_unit_t *o) { OSStatus err = 0; if (o->verbose) { // print some info about the current settings aubio_audio_unit_get_info (o); } /* time to start the unit */ err = AudioOutputUnitStart (o->audio_unit); if (err) { AUBIO_ERR("audio_unit: could not start unit (%d)/n", (int)err); } return err;}
开发者ID:Craig-J,项目名称:RhythMIR,代码行数:13,
示例26: setupvoid InputImplAudioUnit::start(){ if( mIsCapturing ) return; setup(); OSStatus err = AudioOutputUnitStart( mInputUnit ); if( err != noErr ) { std::cout << "Error starting input unit" << std::endl; throw; } mIsCapturing = true;}
开发者ID:AaronMeyers,项目名称:Cinder,代码行数:13,
示例27: ca_start_playbackstatic ALCboolean ca_start_playback(ALCdevice *device){ ca_data *data = (ca_data*)device->ExtraData; OSStatus err; err = AudioOutputUnitStart(data->audioUnit); if(err != noErr) { ERR("AudioOutputUnitStart failed/n"); return ALC_FALSE; } return ALC_TRUE;}
开发者ID:carriercomm,项目名称:openal-soft-chowdren,代码行数:14,
示例28: gst_core_audio_io_proc_startgbooleangst_core_audio_io_proc_start (GstCoreAudio * core_audio){ OSStatus status; AURenderCallbackStruct input; AudioUnitPropertyID callback_type; GST_DEBUG_OBJECT (core_audio->osxbuf, "osx ring buffer start ioproc: %p device_id %lu", core_audio->element->io_proc, (gulong) core_audio->device_id); if (!core_audio->io_proc_active) { callback_type = core_audio->is_src ? kAudioOutputUnitProperty_SetInputCallback : kAudioUnitProperty_SetRenderCallback; input.inputProc = (AURenderCallback) core_audio->element->io_proc; input.inputProcRefCon = core_audio->osxbuf; status = AudioUnitSetProperty (core_audio->audiounit, callback_type, kAudioUnitScope_Global, 0, /* N/A for global */ &input, sizeof (input)); if (status) { GST_ERROR_OBJECT (core_audio->osxbuf, "AudioUnitSetProperty failed: %" GST_FOURCC_FORMAT, GST_FOURCC_ARGS (status)); return FALSE; } // ### does it make sense to do this notify stuff for input mode? status = AudioUnitAddRenderNotify (core_audio->audiounit, (AURenderCallback) gst_core_audio_render_notify, core_audio); if (status) { GST_ERROR_OBJECT (core_audio->osxbuf, "AudioUnitAddRenderNotify failed %" GST_FOURCC_FORMAT, GST_FOURCC_ARGS (status)); return FALSE; } core_audio->io_proc_active = TRUE; } core_audio->io_proc_needs_deactivation = FALSE; status = AudioOutputUnitStart (core_audio->audiounit); if (status) { GST_ERROR_OBJECT (core_audio->osxbuf, "AudioOutputUnitStart failed: %" GST_FOURCC_FORMAT, GST_FOURCC_ARGS (status)); return FALSE; } return TRUE;}
开发者ID:pli3,项目名称:gst-plugins-good,代码行数:50,
注:本文中的AudioOutputUnitStart函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ AudioOutputUnitStop函数代码示例 C++ AudioObjectSetPropertyData函数代码示例 |