Erko, Estou utilizando o projeto oflaDemo agora e alterei o meu onClick e agora está dessa forma:
private function onClick():void { // Record the stream by triggering a server event. if (record.label == "Record") { Alert.show("Application.appConnect"); // Tell the remote server to start recording. nc.call("Application.appConnect", null); // Re-label the button. record.label = "Stop"; // Stop recording the stream. } else if (record.label == "Stop") { // Tell the remote server to stop recording. nc.call("Application.appDisconnect", null); // Re-label the button. record.label = "Record"; } O oflaDemo contém essas classes: Application: package org.red5.server.webapp.oflaDemo; import org.red5.server.adapter.ApplicationAdapter; import org.red5.server.api.IBandwidthConfigure; import org.red5.server.api.IConnection; import org.red5.server.api.IScope; import org.red5.server.api.stream.IServerStream; import org.red5.server.api.stream.IStreamCapableConnection; import org.red5.server.api.stream.support.SimpleConnectionBWConfig; public class Application extends ApplicationAdapter { private IScope appScope; private IServerStream serverStream; /** {...@inheritdoc} */ @Override public boolean appStart(IScope app) { appScope = app; return true; } /** {...@inheritdoc} */ @Override public boolean appConnect(IConnection conn, Object[] params) { // Trigger calling of "onBWDone", required for some FLV players measureBandwidth(conn); if (conn instanceof IStreamCapableConnection) { IStreamCapableConnection streamConn = (IStreamCapableConnection) conn; SimpleConnectionBWConfig bwConfig = new SimpleConnectionBWConfig(); bwConfig.getChannelBandwidth()[IBandwidthConfigure.OVERALL_CHANNEL] = 1024 * 1024; bwConfig.getChannelInitialBurst()[IBandwidthConfigure.OVERALL_CHANNEL] = 128 * 1024; streamConn.setBandwidthConfigure(bwConfig); } // if (appScope == conn.getScope()) { // serverStream = StreamUtils.createServerStream(appScope, "live0"); // SimplePlayItem item = new SimplePlayItem(); // item.setStart(0); // item.setLength(10000); // item.setName("on2_flash8_w_audio"); // serverStream.addItem(item); // item = new SimplePlayItem(); // item.setStart(20000); // item.setLength(10000); // item.setName("on2_flash8_w_audio"); // serverStream.addItem(item); // serverStream.start(); // try { // serverStream.saveAs("aaa", false); // serverStream.saveAs("bbb", false); // } catch (Exception e) {} // } return super.appConnect(conn, params); } /** {...@inheritdoc} */ @Override public void appDisconnect(IConnection conn) { if (appScope == conn.getScope() && serverStream != null) { serverStream.close(); } super.appDisconnect(conn); } } DemoService: package org.red5.server.webapp.oflaDemo; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.Locale; import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.red5.server.api.IScope; import org.red5.server.api.Red5; import org.springframework.core.io.Resource; public class DemoService { protected static Logger log = LoggerFactory.getLogger(DemoService.class); private String formatDate(Date date) { SimpleDateFormat formatter; String pattern = "dd/MM/yy H:mm:ss"; Locale locale = new Locale("en", "US"); formatter = new SimpleDateFormat(pattern, locale); return formatter.format(date); } /** * Getter for property 'listOfAvailableFLVs'. * * @return Value for property 'listOfAvailableFLVs'. */ public Map getListOfAvailableFLVs() { IScope scope = Red5.getConnectionLocal().getScope(); Map<String, Map> filesMap = new HashMap<String, Map>(); try { log.debug("getting the FLV files"); Resource[] flvs = scope.getResources("streams/*.flv"); addToMap(filesMap, flvs); Resource[] mp3s = scope.getResources("streams/*.mp3"); addToMap(filesMap, mp3s); } catch (IOException e) { log.error("{}", e); } return filesMap; } private void addToMap(Map<String, Map> filesMap, Resource[] files) throws IOException { if (files != null) { for (Resource flv : files) { File file = flv.getFile(); Date lastModifiedDate = new Date(file.lastModified()); String lastModified = formatDate(lastModifiedDate); String flvName = flv.getFile().getName(); String flvBytes = Long.toString(file.length()); if (log.isDebugEnabled()) { log.debug("flvName: {}", flvName); log.debug("lastModified date: {}", lastModified); log.debug("flvBytes: {}", flvBytes); log.debug("-------"); } Map<String, Object> fileInfo = new HashMap<String, Object>(); fileInfo.put("name", flvName); fileInfo.put("lastModified", lastModified); fileInfo.put("size", flvBytes); filesMap.put(flvName, fileInfo); } } } } DemoServiceImpl: package org.red5.server.webapp.oflaDemo; import java.util.HashMap; import java.util.Map; public class DemoServiceImpl implements IDemoService { /** * Getter for property 'listOfAvailableFLVs'. * * @return Value for property 'listOfAvailableFLVs'. */ public Map getListOfAvailableFLVs() { System.out.println("getListOfAvailableFLVs empty"); return new HashMap(1); } public Map getListOfAvailableFLVs(String string) { System.out.println("getListOfAvailableFLVs, Got a string: " + string); return getListOfAvailableFLVs(); } } IDemoService: package org.red5.server.webapp.oflaDemo; import java.util.Map; public interface IDemoService { /** * Getter for property 'listOfAvailableFLVs'. * * @return Value for property 'listOfAvailableFLVs'. */ public Map getListOfAvailableFLVs(); public Map getListOfAvailableFLVs(String string); } Estou conseguiu transmitir e assistir, mas não grava. Usando o exemplo do Red5 que usa também o oflaDemo grava direitinho. Queria dar uma olhada no fonte, ma sé um swf. Obrigado, Vinicius. 2009/7/8 Erko Bridee de Almeida Cabrera <erko.bri...@gmail.com> > Vinicius, > > - então aonde você vai mudar não é no Flex... > > - você tem que implementar o suporte no lado do Red5, código java lá > > ---- > > observe os arquivos em anexo: > > 1 - red5-web.xml > você vai precisar fazer essa configuração > > 2 - vai precisar implementar classes de suporte para gerenciar o stream e > efetuar a gravação > essas classes estão mapeadas no XML, veja a classe StreamManager.java é > nela que é > feito a gravação para arquivo do Stream, observe a linha 29, veja que está > monitorando *hostStream* > > 3 - observe a classe ActionScript > métodos: > - initConnection() > linha 71 > ali é feito a conexão do Flex/Flash com o Red5 > > - publish() > linha 80 > observe o código do método, e importate observe a linha: 86 > > ali você define a parte fundamental, lembre que lá na codificação de > suporte java no Red5, você está monitorando > a publicação com nome *hostStream* ali é onde você define no Flex/Flash > para publicar com esse nome, com isso > vai ser captado pela funcionalidade que irá gravar o vídeo no Red5 > > --- > > será que ajudou em algo ? =D > > qq coisa diga ae o/ > > > -- > Att, > Erko Bridee de Almeida Cabrera > http://erkobridee.com/ > http://gospel.erkobridee.com/ > http://www.cwbfx.com/ > http://www.portaljava.com/ > > > > --~--~---------~--~----~------------~-------~--~----~ Você recebeu esta mensagem porque está inscrito no Grupo "flexdev" nos Grupos do Google. Para postar neste grupo, envie um e-mail para flexdev@googlegroups.com Para cancelar a sua inscrição neste grupo, envie um e-mail para flexdev+unsubscr...@googlegroups.com Para ver mais opções, visite este grupo em http://groups.google.com/group/flexdev?hl=pt-BR -~----------~----~----~----~------~----~------~--~---