Sure, make sure to adjust the paths for your copies of the merg externals. On Apr 26, 2014, at 10:48 PM, Nakia Brewer <nakia.bre...@westrac.com.au> wrote:
> Any chance you could email me that test stack? > > > nakia-brewer[at]bigpond[dot]com > ________________________________________ > From: use-livecode [use-livecode-boun...@lists.runrev.com] on behalf of Nakia > Brewer [nakia.bre...@westrac.com.au] > Sent: Sunday, April 27, 2014 12:18 PM > To: How to use LiveCode > Subject: Re: Record and Play sound at same time IOS > > Thanks mate, > > Will give this a crack! > > Btw, how did you come to the assumption the file was not being written to > real time ? > > In my testing I could start playing the file whilst I was still recording it > which indicated to me it was being written real time. > > Sent from my iPhone > >> On 27 Apr 2014, at 12:12 pm, "Stephen MacLean" <smacl...@madmansoft.com> >> wrote: >> >> Hi Nakia, >> >> Ok, played around some, and found that while the file is created when you >> start to record, it doesn't write any data to it until you stop recording. >> That's not going to work, so I came up with a little something that does. It >> rotates the file that is being recorded and the file that is playing. Works >> pretty good, lol, but there sometimes a slight pop when switching files. >> Your milage may vary! >> >> See what you think. It was an interesting exercise! >> >> Put 2 buttons on a card. Name one Record and the other Stop >> >> Out this into the script of the Record button: >> >> global gFileNamePath1,gFileNamePath2,gFileNamePath3 >> global gRecFileName1,gRecFileName2,gRecFileName3 >> global gRecPointer1,gRecPointer2,gRecPointer3 >> global gCurrentFileNum >> global gSendJammerID >> >> on mouseUp >> #Setup mergMicrophone >> if the environment is "mobile" then >> mergMicrophoneSetNumberOfChannels "Stereo" >> mergMicrophoneSetSampleRate 44100 >> mergMicrophoneSetAudioFormat "MP4-AAC" >> mergMicrophoneSetTargetBitRate 65536 >> mergMicrophoneSetAudioQuality "High" >> end if >> >> # Setup up AV Session >> if the environment is "mobile" then >> mergAVAudioSessionSetCategory "play and record",false,false,true,true >> end if >> >> # Setup file names & current file number >> put UUID ("random") into tUUID1 >> put UUID ("random") into tUUID2 >> put UUID ("random") into tUUID3 >> put 1 into gCurrentFileNum >> if the environment is "mobile" then >> put specialFolderPath("cache") & slash & tUUID1 & ".m4a" into >> gFileNamePath1 >> put specialFolderPath("cache") & slash & tUUID2 & ".m4a" into >> gFileNamePath2 >> put specialFolderPath("cache") & slash & tUUID3 & ".m4a" into >> gFileNamePath3 >> put tUUID1 & ".m4a" into gRecFileName1 >> put tUUID2 & ".m4a" into gRecFileName2 >> put tUUID3 & ".m4a" into gRecFileName3 >> # Start Recording with file 1 >> mergMicrophoneStartRecording gFileNamePath1 >> send "playBackJammerStream" to me in 500 millisec >> put the result into gSendJammerID # To cancel sends when stop is pressed >> end if >> end mouseUp >> >> on playBackJammerStream >> #stop recording current file, start recording on next, start playing >> current file >> switch gCurrentFileNum >> case 1 >> mergMicrophoneStopRecording # Stop recording to current file so data >> is written to disk >> mergMicrophoneStartRecording gFileNamePath2 # Start recording to new >> file so you don't lose anything in the stream >> put "file:" & gFileNamePath1 into tGetFile # Set up file we just >> stopped recording for playback >> put mergAVPlayerCreateFromURL (tGetFile) into gRecPointer1 # Create >> the AV player for that file >> mergAVPlayerDo gRecPointer1,"play" # Start playing file >> put 2 into gCurrentFileNum # Advance counter for next callback >> send "playBackJammerStream" to me in 500 millisec # Call me back to >> do all over again >> put the result into gSendJammerID # To cancel sends when stop is >> pressed >> break >> case 2 >> mergMicrophoneStopRecording >> mergMicrophoneStartRecording gFileNamePath3 >> put "file:" & gFileNamePath2 into tGetFile >> put mergAVPlayerCreateFromURL (tGetFile) into gRecPointer2 >> mergAVPlayerDo gRecPointer2,"play" >> put 3 into gCurrentFileNum >> send "playBackJammerStream" to me in 500 millisec >> put the result into gSendJammerID # To cancel sends when stop is >> pressed >> break >> case 3 >> mergMicrophoneStopRecording >> mergMicrophoneStartRecording gFileNamePath1 >> put "file:" & gFileNamePath3 into tGetFile >> put mergAVPlayerCreateFromURL (tGetFile) into gRecPointer3 >> mergAVPlayerDo gRecPointer3,"play" >> put 1 into gCurrentFileNum >> send "playBackJammerStream" to me in 500 millisec >> put the result into gSendJammerID # To cancel sends when stop is >> pressed >> break >> end switch >> end playBackJammerStream >> >> and put this into the Stop button: >> >> global gSendJammerID >> >> on mouseUp >> # Stop recording and cancel the send timer >> if the environment is "mobile" then >> mergMicrophoneStopRecording >> cancel gSendJammerID >> end if >> end mouseUp >> >> Best, >> >> Steve >> >>> On Apr 26, 2014, at 7:29 PM, Nakia Brewer <nakia.bre...@westrac.com.au> >>> wrote: >>> >>> Ah righto, that might explain why I cant get it to work. >>> >>> I am pretty sure the file is being written real time from mergMicrophone as >>> I can play the file using the other methods and it plays up to its current >>> location when I called the play command (I am calling the play whilst I am >>> still recording).. >>> >>> It seems like LiveCode only evaluates the file on the initial play command >>> and doesn't re evaluate the file whilst it playing hence only playing up to >>> the duration that existed on the initial play command call... >>> >>> As I am only playing audio do I need to even have a UI for the player? I >>> have tried setting the visible of the player to false but still nothing >>> played. >>> >>> Thanks for taking a look at it, I appreciate it! >> >> >> >> _______________________________________________ >> use-livecode mailing list >> use-livecode@lists.runrev.com >> Please visit this url to subscribe, unsubscribe and manage your subscription >> preferences: >> http://lists.runrev.com/mailman/listinfo/use-livecode >> > > COPYRIGHT / DISCLAIMER: This message and/or including attached files may > contain confidential proprietary or privileged information. If you are not > the intended recipient, you are strictly prohibited from using, reproducing, > disclosing or distributing the information contained in this email without > authorisation from WesTrac. If you have received this message in error please > contact WesTrac on +61 8 9377 9444. We do not accept liability in connection > with computer virus, data corruption, delay, interruption, unauthorised > access or unauthorised amendment. We reserve the right to monitor all e-mail > communications. > > > > _______________________________________________ > use-livecode mailing list > use-livecode@lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription > preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > > > COPYRIGHT / DISCLAIMER: This message and/or including attached files may > contain confidential proprietary or privileged information. If you are not > the intended recipient, you are strictly prohibited from using, reproducing, > disclosing or distributing the information contained in this email without > authorisation from WesTrac. If you have received this message in error please > contact WesTrac on +61 8 9377 9444. We do not accept liability in connection > with computer virus, data corruption, delay, interruption, unauthorised > access or unauthorised amendment. We reserve the right to monitor all e-mail > communications. > > > > _______________________________________________ > use-livecode mailing list > use-livecode@lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription > preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode _______________________________________________ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode