# Pcmreadcallback called only once

**URL:** <https://qa.fmod.com/t/pcmreadcallback-called-only-once/14597>\
**Category:** FMOD Engine\
**Created:** [April 21, 2019, 3:24am UTC](https://qa.fmod.com/t/pcmreadcallback-called-only-once/14597 "2019-04-21T03:24:34Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![KentJi](https://avatars.discourse-cdn.com/v4/letter/k/58956e/32.png) [@KentJi](https://qa.fmod.com/u/KentJi)\
**Post date:** [April 21, 2019, 3:24am UTC](https://qa.fmod.com/t/pcmreadcallback-called-only-once/14597/1 "2019-04-21T03:24:34Z")

</div>

I try to use FMOD\_OPENUSER | FMOD\_CREATESTREAM mode to play audio decoded by ffmpeg. This is good in Windows as pcmreadcallback is called continuously and I can put decoded data in this function. However, pcmreadcallback is called only once in my iphone. How can I solve this problem? Here is my code:

FMOD\_RESULT result;  
FMOD\_CREATESOUNDEXINFO exinfo;  
uint32\_t version;  
FMOD\_MODE mode = FMOD\_OPENUSER | FMOD\_LOOP\_NORMAL | FMOD\_CREATESTREAM;

result = FMOD::System\_Create(&mFmodSystem);  
if (result != FMOD\_OK)  
return;

mFmodSystem-\>setDriver(0);  
mFmodSystem-\>init(32, FMOD\_INIT\_NORMAL, nullptr);

memset(&exinfo, 0, sizeof(FMOD\_CREATESOUNDEXINFO));  
exinfo.cbsize = sizeof(FMOD\_CREATESOUNDEXINFO);  
exinfo.numchannels = 2;  
exinfo.defaultfrequency = 48000;  
exinfo.decodebuffersize = 1024;  
exinfo.length = exinfo.defaultfrequency \* exinfo.numchannels \* sizeof(uint16\_t) \* mMediaTotalLength;  
exinfo.format = FMOD\_SOUND\_FORMAT\_PCM16;  
exinfo.pcmreadcallback = pcmreadcallback;  
exinfo.pcmsetposcallback = pcmreadpostcallback;

result = mFmodSystem-\>createSound(0, mode, &exinfo, &mFmodSound);  
if (result != FMOD\_OK)  
return;  
result = mFmodSystem-\>playSound(FMOD\_CHANNEL\_FREE, mFmodSound, false, &mFmodChannel);  
if (result != FMOD\_OK)  
return;

---

<div class="post-metadata">

**Author:** ![KentJi](https://avatars.discourse-cdn.com/v4/letter/k/58956e/32.png) [@KentJi](https://qa.fmod.com/u/KentJi)\
**Post date:** [April 21, 2019, 10:18am UTC](https://qa.fmod.com/t/pcmreadcallback-called-only-once/14597/2 "2019-04-21T10:18:15Z")

</div>

Solved. Change defaultfrequency to 44100.

---

<div class="post-metadata">

**Author:** ![brett](https://yyz2.discourse-cdn.com/flex036/user_avatar/qa.fmod.com/brett/32/261_2.png) [@brett](https://qa.fmod.com/u/brett)\
**Post date:** [April 22, 2019, 6:31am UTC](https://qa.fmod.com/t/pcmreadcallback-called-only-once/14597/3 "2019-04-22T06:31:14Z")

</div>

I don’t know why this would solve your issue but for anyone else, defaultfrequency is unrelated to if the pcmcallback is called once or more than once.
