Ios 在iPhone混音器EQGraph测试中使用AUGraph转发歌曲

Ios 在iPhone混音器EQGraph测试中使用AUGraph转发歌曲,ios,objective-c,Ios,Objective C,我正在使用AUGraph实现一个播放器(以iPhonemixerEQgraphtest为例)。我已经实现了转到下一首和上一首歌曲。但从昨天开始,我就一直在使用UISlider在球员身上研究前锋选项。任何人都可以告诉我如何实现转发选项。为了更好地理解我已经包括了图片 如果我将滑块滑动到10秒,那么它必须从10秒开始播放歌曲。任何想法/建议都可能非常有用 嗨,经过长时间的研究,我找到了解决办法 在AUGraphController.mm中,我已更改此代码 // the render notifica

我正在使用AUGraph实现一个播放器(以iPhonemixerEQgraphtest为例)。我已经实现了转到下一首和上一首歌曲。但从昨天开始,我就一直在使用UISlider在球员身上研究前锋选项。任何人都可以告诉我如何实现转发选项。为了更好地理解我已经包括了图片

如果我将滑块滑动到10秒,那么它必须从10秒开始播放歌曲。任何想法/建议都可能非常有用


嗨,经过长时间的研究,我找到了解决办法

在AUGraphController.mm中,我已更改此代码

// the render notification is used to keep track of the frame number position in the source audio
static OSStatus renderNotification(void *inRefCon, AudioUnitRenderActionFlags *ioActionFlags, const AudioTimeStamp *inTimeStamp, UInt32 inBusNumber, UInt32 inNumberFrames, AudioBufferList *ioData)
{
    Simple_PlayerAppDelegate *appDel = (Simple_PlayerAppDelegate*)[[UIApplication sharedApplication] delegate];

    SourceAudioBufferDataPtr userData = (SourceAudioBufferDataPtr)inRefCon;
    //NSLog(@"userdata out is %lu",(userData->frameNum/44100));

    appDel.secondsFromLocalSong = (userData->frameNum/44100);

    if (*ioActionFlags & kAudioUnitRenderAction_PostRender)
    {

        //printf("post render notification frameNum %ld inNumberFrames %ld\n", userData->frameNum, inNumberFrames);

        if(appDel.skipSecondsFromLocalSong>0)
        {
            userData->frameNum = (appDel.skipSecondsFromLocalSong*userData->maxNumFrames);
            appDel.skipSecondsFromLocalSong = 0;
        }
        else
            userData->frameNum += inNumberFrames;

        if (userData->frameNum >= userData->maxNumFrames) {
            //userData->frameNum = 0;
            SilenceData(ioData);
        }
    }

    return noErr;
}

就连我也面临着同样的问题。如果你已经解决了。你能分享一下你的解决方案吗?嗨,我已经做完了。请在下面找到我的解决方案