EDIT: sorry, I misunderstood what you were trying to do. You want to record during the Pic1 trials, not during the praPic1 trials. Just adapt the code below to the content of the Template command that you already have in your script (the one on "PicList1.csv"), changes should be minimal.
So you only have one practice trial that tries to record anything at the moment, the last one, and it doesn’t have time to do so because it reaches the end of the trial immediately after starting to record. Since you seem to want to use the same template for all your practice trials, let’s embed them in a Template command too:
AddTable("practice", `Image feather.png vacuum.png bat.b.png`) Template( "practice" , row => newTrial( "pracPic1" , newImage( row.Image ) .print() , newMediaRecorder("recorder", "audio") .record() .log() , newKey(" ") .wait() , getMediaRecorder("recorder") .stop() ) .log( "Image" , row.Image ) )
Of course I’m just using AddTable here because I can’t upload a CSV file to your project myself, but you should use an external CSV file rather than directly writing your table in the main script like that.
As a general rule of thumb, it’s a bad idea to try to record audio/video across trials (I’m not even sure it will work anyway) that’s why you should call stop before the trial ends, as in this example. This way, you’ll have one audio file per trial in your zip file. Take a look at UploadRecordings if you want more control over when the files are sent to the server
Let me know if you have questions