incubator-callback-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gord Tanner <g...@tinyhippos.com>
Subject Re: [jira] [Updated] (CB-1680) Uncaught TypeError in cordova-*.js when using media API
Date Fri, 19 Oct 2012 23:47:21 GMT
This was logged on our github issues:

https://github.com/blackberry/Ripple-UI/issues/597

You can close this as we will track it there.

On Fri, Oct 19, 2012 at 2:43 PM, Shazron Abdullah (JIRA) <jira@apache.org>wrote:

>
>      [
> https://issues.apache.org/jira/browse/CB-1680?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel]
>
> Shazron Abdullah updated CB-1680:
> ---------------------------------
>
>     Labels: javascript ripple  (was: javascript)
>
> Is this more of a Ripple issue? Not sure when their JIRA is up yet (they
> are a separate Apache incubator project), but if so it should move to their
> JIRA when the time comes. Tagging with Ripple.
>
> > Uncaught TypeError in cordova-*.js when using media API
> > -------------------------------------------------------
> >
> >                 Key: CB-1680
> >                 URL: https://issues.apache.org/jira/browse/CB-1680
> >             Project: Apache Cordova
> >          Issue Type: Bug
> >          Components: CordovaJS
> >    Affects Versions: 2.0.0
> >         Environment: 1. Ripple, Chrome, Mac OSX 10.7.5
> > 2. Phonegap Build, Apple iPad
> >            Reporter: Per Quested Aronsson
> >            Assignee: Filip Maj
> >              Labels: javascript, ripple
> >             Fix For: Master
> >
> >   Original Estimate: 24h
> >  Remaining Estimate: 24h
> >
> > When testing my code in Ripple, I get the following error and no sound
> plays:
> > {code}
> > Uncaught TypeError: Cannot set property '_duration' of undefined
> cordova-2.0.0.js:3090
> > Media.onStatus cordova-2.0.0.js:3090
> > (called from anonymous function) ripple.js:477
> > row 3090: media._duration = value;
> > {code}
> > The same code tested in Phonegap Build does *not* crash. It doesn't work
> as expected, but it doesn't crash. Audio playback doesn't stop when it
> should. The audio file is played to the end every time.
> > Please find the relevant part of the code below. It will not run as is.
> It expects to find an audio file of at least 8s duration at "audio/FX.m4a",
> and it expects to find an HTML element with ID "cross", but that's it I
> think.
> > {code:javascript}
> >     function AudioPG() {
> >               var self = this;
> >               var soundOff = false;
> >               var inter;
> >               var sound = new Media('audio/FX.m4a', self.onSuccess,
> self.onError);
> >               var segmentEnd = 0.5; //sound.getDuration(); // used for
> sound
> >               var sprites = { // id: [start, length], startpoints:
> 0,1,2,7
> >                       0: [1, 1.7], // Jackpot
> >                       1: [0.0, 0.5], // Click
> >                       2: [2.5, 5], // Whosh
> >                       3: [7.2, 7.7] // Buzz
> >         };
> >
> >               this.checkSprite = function () {
> console.log('checkSprite');
> >                       if (segmentEnd) {
> >                 sound.getCurrentPosition(function(position) {
> console.log([position, segmentEnd]);
> >                     if (position >= segmentEnd) { // getCurrentPosistion
> uses seconds
> >                         sound.pause();
> >                         clearInterval(inter);
> >                         inter = null;
> >                     }
> >                },
> >                 function(e) {
> >                     console.log("Error getting pos=" + e);
> >                 }
> >               );
> >                       }
> >
> >               };
> >
> >               this.playSprite = function (id) {
> >                       if (soundOff) {
> >                               return;
> >                       }
> >                       var startTime = sprites[id][0];
> >                       segmentEnd = startTime + sprites[id][1];
> >                       if (sound) {
> >                               sound.seekTo(startTime*1000); // seekTo
> uses milliseconds
> >                               sound.play();
> >                               if (!inter) {
> >                                       inter =
> setInterval(self.checkSprite,100);
> >                               }
> >
> >                       }
> >
> >               };
> >
> >               this.stopSprite = function () {
> >                       if (sound) {
> >                               sound.pause();
> >                       }
> >               };
> >
> >               this.toggleSound = function (e) {
> >                       var cross = e.target;
> >                       soundOff = !soundOff;
> >                       cross.style.opacity = (soundOff ? 0.4 : 0);
> >               };
> >
> >               // onSuccess Callback
> >         //
> >         this.onSuccess = function () {
> >             console.log("playAudio():Audio Success");
> >         };
> >         // onError Callback
> >         //
> >         this.onError = function (error) {
> >             alert('code: '    + error.code    + '\n' +
> >                   'message: ' + error.message + '\n');
> >         };
> >
> >
> document.getElementById('cross').addEventListener('touchstart',
> self.toggleSound, false);
> >               console.log(['AudioPG', segmentEnd]);
> >     }
> > {code}
>
> --
> This message is automatically generated by JIRA.
> If you think it was sent incorrectly, please contact your JIRA
> administrators
> For more information on JIRA, see: http://www.atlassian.com/software/jira
>



-- 
Gord Tanner
Senior Developer / Code Poet
tinyHippos Inc.
@tinyhippos

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message