Stopping the player gives an audible glitch, but in fact, you don't need to
stop the player before resetting the time, so:

-(void)skipToTime:(NSTimeInterval)time{

    MusicPlayerSetTime(self.player, time);



}


On Wed, Oct 7, 2015 at 9:21 AM, Wil Macaulay <[email protected]> wrote:

> FWIW, if you want the whole sequence to loop, you can set a user event at
> the end of the sequence and use the callback to trigger a reset of the time
> to the start of the sequence.
>
> -(void)handleUserEvent:(NSValue *)theEventValue{
>
>
>
>     UserEvent theEvent;
>
>     [theEventValue getValue:&theEvent];
>
>
>
>     switch(theEvent.type){
>
>         case UserExitEvent:
>
>             if (self.looping){
>
>                 [self skipToTime:0];
>
>
>
>             } else {
>
>                 [self stop];
>
>             }
>
>             break;
>
>         default:
>
>             break;
>
>
>
>
>
>     }
>
>     if (self.userEventBlock != nil){
>
>         self.userEventBlock(theEvent);
>
>     }
>
>
> }
>
> -(void)skipToTime:(NSTimeInterval)time{
>
>     MusicPlayerStop(self.player);
>
>     MusicPlayerSetTime(self.player, time);
>
>     MusicPlayerStart(self.player);
>
>
>
> }
>
> void MidiUserCallback (
>
>                                void                      *inClientData,
>
>                                MusicSequence             inSequence,
>
>                                MusicTrack                inTrack,
>
>                                MusicTimeStamp            inEventTime,
>
>                                const MusicEventUserData  *inEventData,
>
>                                MusicTimeStamp            inStartSliceBeat,
>
>                                MusicTimeStamp            inEndSliceBeat
>
>                                ){
>
>     UserEvent *theEvent = (UserEvent *)inEventData;
>
>     MidiFilePlayer *player = (__bridge MidiFilePlayer *)inClientData;
>
>     NSValue *eventValue = [NSValue valueWithBytes:theEvent objCType:
> @encode(UserEvent )];
>
>     dispatch_async(dispatch_get_main_queue(), ^(){
>
>         [player handleUserEvent:eventValue ];
>
>     });
>
>
>
> }
>
>
> On Fri, Oct 2, 2015 at 7:52 AM, Jack Nutting <[email protected]> wrote:
>
>> Ugh, that's really unfortunate. Thanks for the update.
>>
>> // Jack Nutting
>> // [email protected]
>> // http://nuthole.com
>> // http://learncocoa.org
>>
>> On Oct 2, 2015, at 3:40 PM, Nikolozi Meladze <[email protected]> wrote:
>>
>> It's still happening on both 9.0.3 and 9.1b3
>>
>> On 2 Oct 2015, at 10:23 PM, Jack Nutting <[email protected]> wrote:
>>
>> Has anyone tried this in 9.0.2 yet? I may have an upcoming need for this
>> to work, and it would be interesting to know if it's been fixed.
>>
>> //jack
>>
>> On Sun, Sep 27, 2015 at 3:21 AM, Nikolozi Meladze <[email protected]>
>> wrote:
>>
>>> Just wondering if there’s an update when we might see a fix for this
>>> issue. My App Store app is not working for iOS 9 users :(
>>>
>>> It’s still happening on iOS 9.0.1 and iOS 9.1 beta 2. I can reproduce it
>>> on all my devices, iPhone 6, iPad Air 2 and iPod Touch 5th gen.
>>>
>>> Cheers
>>> Niko
>>>
>>> ------------------------------
>>>
>>>    - *Subject*: *Re: MusicPlayer in iOS9*
>>>    - From: Douglas Scott <email@hidden>
>>>    - Date: Tue, 25 Aug 2015 10:32:45 -0700
>>>
>>> ------------------------------
>>> This is a known issue that will be fixed in an upcoming release.  It was
>>> not reported in time to be fixed in 9.0.
>>>
>>> -DS
>>>
>>> On Aug 24, 2015, at 4:39 PM, Sam Tarakajian <email@hidden> wrote:
>>>
>>> Hi,
>>>
>>> I'm working on an app that uses MusicPlayer to play a looping MIDI
>>> track. However, I've found that in the iOS 9 beta looping no longer seems
>>> to work.
>>>
>>> I start by creating a very simple AUGraph, with just an AUSampler and a
>>> remoteIO node in the graph. Then I create a MusicPlayer, a MusicSequence
>>> and a MusicTrack. I set the length of the track to be 4, the loop length to
>>> 4 and the number of loops to 0 (infinite looping). I add four midi note
>>> messages to this track, all of duration 0.5, with timestamps 0, 1, 2 and 3.
>>>
>>> When I start the music player, I hear the first three notes play
>>> correctly. However, audio processing stalls before the final note, and
>>> calling MusicPlayerGetTime on the music player returns a timestamp just
>>> before the last note in the track.
>>>
>>> Any idea what I might be doing wrong? The code works as expected
>>> (playing an infinite loop) in iOS 8.4
>>>
>>> https://gist.github.com/starakaj/cc1a68c9b13c08d98dd4 is basically what
>>> I'm trying to do.
>>>
>>> Thanks,
>>> -Sam
>>>
>>>
>>>
>>>
>>>
>>>  _______________________________________________
>>> Do not post admin requests to the list. They will be ignored.
>>> Coreaudio-api mailing list      ([email protected])
>>> Help/Unsubscribe/Update your Subscription:
>>>
>>> https://lists.apple.com/mailman/options/coreaudio-api/jnutting%40gmail.com
>>>
>>> This email sent to [email protected]
>>>
>>
>>
>>
>> --
>> // Jack Nutting
>> // [email protected]
>> // http://nuthole.com
>> // http://learncocoa.org
>>
>> _______________________________________________
>> Do not post admin requests to the list. They will be ignored.
>> Coreaudio-api mailing list      ([email protected])
>> Help/Unsubscribe/Update your Subscription:
>> https://lists.apple.com/mailman/options/coreaudio-api/apps%40nikolozi.com
>>
>> This email sent to [email protected]
>>
>>
>>  _______________________________________________
>> Do not post admin requests to the list. They will be ignored.
>> Coreaudio-api mailing list      ([email protected])
>> Help/Unsubscribe/Update your Subscription:
>>
>> https://lists.apple.com/mailman/options/coreaudio-api/wil.macaulay%40gmail.com
>>
>> This email sent to [email protected]
>>
>
>
>
> --
> The Craic app: http://thecraic.co abc tunes on the iPad and iPhone
> Sideband app: http://sideband.co slow down, loop and change the key.
> Learn by ear.
> Products and services: http://flagpig.com
> Twitter: @tom_frog
>



-- 
The Craic app: http://thecraic.co abc tunes on the iPad and iPhone
Sideband app: http://sideband.co slow down, loop and change the key. Learn
by ear.
Products and services: http://flagpig.com
Twitter: @tom_frog
 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/coreaudio-api/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to