glad I found this thread...
I am running into this exact same problem.
Seems it's still not fixed.:(
WinXP IE 6 Flash player 6
Printable View
glad I found this thread...
I am running into this exact same problem.
Seems it's still not fixed.:(
WinXP IE 6 Flash player 6
I am having exactly the same issues loading jpegs into a project portfolio dynamically and it is a real showstopper - cant believe MM have messed up to this degree really - especially as the functionality was apparently there in Flash 5
Makes a total mess of dynamic content loading!:mad: :mad: :mad:
...but has this been resolved yet?
Will .swfs continue to load regardless of unload commands or new swfs being loaded on top of them?
Can someone please update me?
Yes I can confirm this STILL with r79 in IE5.2 on both OS9 and X. Netscape7 however behaves as expected.Quote:
Originally posted by me2222
Dear Macromedia, dear MikeChambers, dear Readers of this thread.
After doing intense tests i have to say that the streaming bug explained before (none-termination of swfs containing streamed sounds)
is NOT FIXED for Internet Explorer 5.1.x on MAC
The condition of the test:
- a swf containing a 32kbit streamed sound was loaded into an empty movieclip.
- the test swfs were created with flash5.
- i used the latest flash-plugin 6.0.47.0 on Mac OS9.2.2 with Internet Explorer 5.1.4. and a 56k modem connection.
- i traced the connection with IPNetMonitor to see what happened.
the result:
- the stream continued after loading another movie into the clip, replacing the swf with the streamed sound.
- even a movieClip.unloadMovie(); didn't help
- the only way to terminate the stream was:
1. to change to another website (in the same window), though the stream continued for about 20sec and then terminated
2. to close the browser window containing the flash movie
- with Netscape 6.x the stream is terminated as expected
- with netscape 4.7 the stream is terminated after about 10sec
Can somebody please explain/confirm the situation?
Are there any Mac users having the same problems?
thanks
BTW, there's another BUG (?) on Mac Internet Explorer using unloadMovie();
please read "sl0thman's" problem here:
http://board.flashkit.com/board/show...hreadid=360780
[Edited by me2222 on 08-29-2002 at 12:31 PM]
Peter
This is still f*cked.
Try as an example the mp3 player at http://www.awamusic.com/index_main.html - works on everything we've tried except Mac IE, which rules out quite a chunk of the design market.
Which begs the question...
Why has this thread title got [Resolved] plastered all over it?
That's a NICE player. Do you have the code for the playlist available?
Also, it looks like you're using a flashClip, or some other app to conver the MP3 to SWF format to get the dynamic EQ values - Swift-MP3 perhaps?
I just saw thhread. I cannot go through all the answers but the last post I can answer. I have Mac G3, 9.1 and there is a nice female voice when I listen to it on IE5.1. I also saw that music cannot be stopped. I don't know that has been resolved or not (for the above reasons) but sound is an object and when you have an instance name for the sound like 'myMusic' then the sound can be stopped with myMusic.stop();
If I am saying something which was resolved or misunderstood, sorry for that but I don't want to read all the threads.:)
Yes, the first track works but if you change track say five times the player will malfunction and/or freeze. On a PC this doesn't happen.Quote:
Originally posted by cancerinform
I have Mac G3, 9.1 and there is a nice female voice when I listen to it on IE5.1.
Re: The code - an approximate version is here
http://metasphere.net/help/FCS-1031.html
Sandy,
Did you make the player at the mentioned artists site?
The reason I ask is because the song position slider works so well on this example. I have had no success with the property song.duration in a streaming situation as it seems the value flash returns is the duration of the amount already streamed into the player not the duration of the entire mp3 on the server. Thus calculating a position slider using song.postion/song.duration gives inaccurate results in the early phases of a freshly invoked mp3 stream.
I notice all clips in the mentioned player are 1:30. So I guess the song.duration property could be bypassed with a constant value of 90 000 miliseconds for all songs. Is this what was done or did you really find a way to impliment song.duration property to update the position slider accurately.
Any insight would be much appreciated.
By the way I have been quite active over at MM Flash Forum and it appears that finally some MM folks are looking into this Mac IE streaming issue. I cant believe such a major bug has gone unattended for so long. I guess we know where their priorities lie. Had it been a a PC thing they would have surely taken it seriously immediately like they did with the r29 update.
Peter
The player above isn't mine I'm afraid - I was just using it as a third-party, professional, example of a player... which doesn't work.
I'm with you on the Macromedia forum thread - I imagine Macromedia will pay more attention if the complaint is on their own forum.
The thing I don't understand is why more people aren't concerned about this - a large portion of the design sector use Mac IE, and currently they are being denied a full Flash audio experience.
If your site has any kind of decent audio implementation, potential clients won't get to hear it.
Does no-one else care?
A couple of issues:
One possiblity instead of unloadMovie is to use removemovieclip of clips created dynamically. Has anybody tried that?
Instead of loading into a movieclip why not just just to create a new sound object and do loadsound(mp3,true)? I am making a mp3 player component using xml to load the sound and also pic or movie files and that seems to work though I have not yet tested in a browser. Whenever I want to play a new sound I instruct to do soundobject.stop();, which stops the old sound and the new sound will be loaded. What is annoying is that even the movie is not playing any more the sound still loads, also from other sites which I checked.
If anybody is interested I can upload the component, which is basically ready and may be can get some more input for improvement.
schmeete,
You're right, the duration on a streamed MP3 is dynamic - it shows the duration of the amount of the file that's been streamed. Here's another nice tidbit that'll help out too: When the file is done playing, the .position = .duration - 1!
In my player, I have an option to play the next song after the current one is finished, so I run a function on an interval that first checks to see if the file's fully loaded (bytesLoaded >= bytesTotal), then I check to see if the .postition >= .duration - 1;
If this is the case, I jump to the next song. One thing I do is create variables to hold the bytesLoaded, bytesTotal, duration, and position. Every time I do any track changing, I reset these to 0. For some reason, Flash will cache the track properties at times, and that can really mess things up.
As for the player on that artist's site, I'm pretty sure it's using Swift-MP3 as a back end for the MP3 streaming. I'm assuming this because the EQ is dynamic and matches the track's sound. When Flash streams MP3s directly, it can't access ID3 variables until the files's 100% loaded, and EQ settings aren't even available.
Swift MP3 converts the MP3 into a SWF format at runtime, and ID3 tags, as well as EQ values are available immediately.
Swift-MP3 can be found at www.swift-tools.com
I also attached my player just in case you're interested :D
Hi,
I finished the mp3player component (xml based) and also included the possibility to do playback using movieclips. I have not tested multiple playback on IE5 on Mac because I did not have time and also I have a modem and it takes a long time to load. So please have a look here
http://can_info_guide.tripod.com/com.../tutorial.html
Regarding the progressbar you will find that even the duration of the mp3 files differs, it will always be the same. That was pretty easy. Just use a factor to multiply the position of the file.
if the site is not available you need to come back later, because the bandwith is limited. Sorry for that.
The player works, but there's a small bug. When you click on another track while one is playing, they both start streaming instead of stopping the current track and playing the new one. Other than that, it works well.
Thanks for looking. I will fix that and I will post the player here for download once it is fixed, of course without mp3 files.
No problem! It looks like you're loading allt he MP3s before launching the player. If a user has a lot of MP3s to show off, that could be a huge preload. Right now, I just stream the files directly, and they play when enough loads.
I also only use one sound object for the player so if I want to load another track, I just use:
track_sound.stop();
track_sound = new Sound();
track_sound.loadSound();
This ensures that only one track's playing at any given time.
I had an idea on preloading... what if you run a timer to see if the current track is say, 60% loaded, then create a new sound object to start loading the next track. When you create that object, don't stream it, and set the volume to 0 as well. Something like this:
if(track_sound.getBytesLoaded/track_sound.getBytesTotal >= .6){
preload_sound = new Sound();
preload_sound.loadSound('filename here',0);
preload_sound.setVolume(0);
... call the preloading sound monitor function here...
}
You could also run a timer on the silently preloading sound so that when it got about 50% loaded, you could dump it and start preloading the next one. So at the very least, you'd have most of the files 50% downloaded by the time you started streaming them. You'd do some optimization as well, making sure to skip files that are already 50% preloaded, and stopping the preload functionality once you've run through the list.
I know it sounds like a lot of bandwidth, but it'd be an option for broadband users. Any ideas, opinions on this method?
Hi Nebulus,
the way this component works is the following:
You can set streaming "true" then you just enter urls in the xml file and there is no preloading. There was a problem with the progressbar though, which moves on correctly on a slow modem but is finished immediately on DSL line, because loading is the factor. I could not use duration and position for a modem. May be I should forget about modems at this time.
The second option is to load into movieclips. For every sound there is one movieclip and every sound is a different soundobject. In this movie the mp3 are in the movielibrary. That is the reason why the file is so big. The reason why there is some overlap in playing could be because I have to enter a stop somewhere.
I can try of course as you suggest to load from mp3s outside. What i don't know is what happens when the sound plays and is only partly loaded. As long as sound files are so big there is a drawback unfortunately.
That's weird about the progress bar. Here's the code I used on my load bar, and it seems to do well for loading the streamed audio:
onClipEvent(load){
this._xscale = 0;
}
onClipEvent(enterFrame){
trackTotal = _root.track_sound.getBytesTotal();
trackLoaded = _root.track_sound.getBytesLoaded();
// set the scale
if(trackTotal > 0){
myScale = parseInt((trackLoaded / trackTotal) * 100);
} else {
myScale = 0;
}
if(myScale >= 100){
myScale = 100;
}
// set load bar scale
this._xscale = myScale;
}
As far as the play head tracking the current position, I haven't found a way to acurately show that since the duration is constantly changing. It does calm down a lot as more of the fil gets loaded, buit that's because the percentage change is getting smaller.
With loading MP3s externally, you'll get more flexability for the app and can define the URL for the mp3s through the XML file. When you stream it, the default _soundbuftime is 5 seconds, and depending on your connection, that's about how long you wait before the track starts. The track will play as much as it can, and it it plays to the current bytesLoaded, it'll wait until there's more to play.
So you'd most likely want to do a few things based on connection...
modem: set _soundbuftime > 5
don't start preloading other tracks until the current track is about 75% loaded, then only one at a time.
broadband: set _soundbuftime <= 5, preload other tracks earlier say, 45-50%, try preloading each track in succession as they reach a cut off point for preloading.
Just had an idea... with being able to preload a track while playing one, it shouldn't be too much trouble to figure up some form of crossfade in the tracks as well. Since streamed mp3s have a buffer, you could create a movie clip to start decreasing the volume of the current track while you increase the volume of the next track... hmmmmmmm
I am using basically the same script for streaming sound except there is an if statement:
if (mySound.position > 0){
progressbar = nowProgress;//this is total and loaded bytes etc
}
By this way the progressbar starts when the sound starts although it jumps a bit at the beginning :) . The problem is that on a fast line loading is much faster than playing. How do you using actionscript distinguish whether the user is using a modem or broadband?
You are right regarding the flexibility, although I am also using the xml file for calling the mp3s, since the mp3s are in linkage and the xml file contains the linkage identifier names. We will see. i will do some work on that and let you know. Thanks for the advice.
Ok, the new version is on. Now the mp3s are loaded externally. There is also a autoplay button and there should not be any sound overlaps. Multiple playback on IE for windows is fine. I don't know for mac. One thing: if sounds are loaded with loadSound("sound.mp3",false) they will be able to play only when the sound is loaded completely. I read that and also experienced using a modem line.
I still have to do some work on the streaming sound actionscript before I can release the component.
Here is the site: http://geocities.com/jamit_5000/mp3player/tutorial.html
This is also the site of the artist who created the music.