Interesting… So I guess Skype on Windows now utilizes Flash? Who knew…
This was on my screen when I got home tonight:
Error: Error #1502: A script has executed for longer than the default timeout period of 15 seconds. at fl.video::VideoPlayer/setSize() at fl.video::FLVPlayback() at com.skype.video.videoPlayer.players::FLVPlayer() at com.skype.video.videoPlayer::VideoPlayer/initPlayer() at com.skype.video.videoPlayer::VideoPlayer/init() at com.skype.video::Main/onServiceReady() at flash.events::EventDispatcher/dispatchEventFunction() at flash.events::EventDispatcher/dispatchEvent() at com.skype.video::PlayerL10N/onReady() at MethodInfo-666()
After dismissing, I got this:
Error: Error #1502: A script has executed for longer than the default timeout period of 15 seconds. at com.skype.video::PlayerL10N/getPropertyFromXML() at com.skype.locale::L10N$/getFromHtml() at com.skype.locale::L10N$/localiseTextfield() at player_fla::TooltipRight_66/frame1()
If people aren’t complaining about Flash and HTML5 they are falling back to NoSQL vs RDBMS. There is a time and a place for everything, just remember that tidbit. So to get on with it, I would like to state that I am mostly a Windows user and I love Windows 7.. It f#@king rocks! I also use Google Chrome as my primary browser on both OSX and Windows. I recently loaded the latest dev build of Chrome that contains a streamlined Flash Player and I can say that it is awesome.
To test, I started up a Red5 instance with some mp4 and vp6 videos to see what the CPU usage would be and here is the result: Red5 = 0% to 7% and Chrome = 3% to 6% (average 3%)
The playback was smooth as silk and the audio was perfect. Next up for comparison, I tried IE and FF:
IE 8 with FP10.1 = 5% to 11% (average 5%)
Firefox 3.6 with FP 10.1 = 14% to 66% (average 40%)
Tags: chrome, firefox, flash, html5, ie8, Java, mp4, Red5
FOT is coming up real soon… I’m co-presenting with Dominick for the Red5 workshop and I would like to know what you guys want to see? Since its an all-day thing, I would be glad to get some input from the community. Post your ideas as comments.
Tags: flash, flash on tap, flex, fot, Java, Red5
I am not sure how or if FMS provides a means for dynamic rooms, but Red5 does and I will try to explain how to use it below. For the following example, you should expect the following url – rtmp://localhost/myapp/room is being used. The method below is an overridden super class method from the Red5 application adapter. The example places a client into an id based “chat” room; the id algorithm could be anything you desire and is not fixed. I have used this block in a couple projects, one of which used an encrypted room and id portion and its url looked similar to this – rtmp://localhost/myapp/29c8109abd29e
@Override
public boolean roomJoin(IClient client, IScope scope) {
log.debug("roomJoin - client id: {} scope: {}", client.getId(), scope);
IConnection conn = Red5.getConnectionLocal();
String scopeName = scope.getName();
log.debug("Scope name: {}", scopeName);
//check for "application" scope
if ("myapp".equals(scopeName)) {
log.debug("Connection already connected to app scope");
} else if (conn.hasAttribute("in.room")) {
//client is already in a room
log.debug("Connection already connected to room scope");
} else {
//the room name
String roomName = scopeName;
//set flag
conn.setAttribute("in.room", true);
//get app scope
IScope appScope = scope.getParent();
//handle at room level
if ("room".equals(roomName)) {
//lookup room (top level)
IScope roomScope = ScopeUtils.resolveScope(appScope, roomName);
if (roomScope == null) {
if (appScope.createChildScope(roomName)) {
log.debug("Room {} created", roomName);
roomScope = appScope.getScope(roomName);
} else {
log.warn("Room {} was not created", roomName);
}
} else {
log.debug("Room scope {} was found", roomName);
}
//get the next room identifier
String chatId = getNextChatId();
//room for chat id
IScope chatScope = ScopeUtils.resolveScope(roomScope, chatId);
if (chatScope == null) {
if (roomScope.createChildScope(chatId)) {
log.debug("Chat scope {} created", chatId);
chatScope = roomScope.getScope(chatId);
} else {
log.warn("Chat scope {} was not created", chatId);
}
} else {
log.debug("Chat scope {} was found", chatId);
}
//send the actual join
return roomJoin(client, chatScope);
} else {
return false;
}
}
return super.roomJoin(client, scope);
}
After this block is executed, your client would be connected to something like this – rtmp://localhost/myapp/room/1001 without having to create any additional NetConnections. The method “getNextChatId()” is meant to provide a chat room id, based on whatever criteria you would like.
Tags: flash, fms, NetConnection, Red5, room, rtmp, scope
Welcome fellow Red5, Flash, and Flex people! I want to let you all know that I will be conducting a workshop on Red5 with Dominick at the Flash on Tap conference in Boston during the second week of October 2008. For those of you that prefer face-to-face of one-on-one time with our core developers, this would be your opportunity – don’t miss out!
http://www.flashontap.com/fot/index.html
Plus I’m pretty sure this is the “first” flash conference + beer festival. It’s ok if you dont drink, just come for all the flash-ing heh heh