Leo KW 0 Denunciar post Postado Agosto 12, 2011 Fala galera, Eu criei um player de vídeo dinâmico, em que o vídeo FLV é puxado via AS, até ai beleza, porém meu cliente pediu que o vídeo começasse sem volume, caso o usuário quiser ele próprio almentaria o som. Já tentei pesquisar em vários lugares e usar o meu leve conhecimento em FLASH e até agora nada...kkkk Segue abaixo o AS usado para puxar o vídeo: //configuração do palco... //não necessário, fica a gosto... this.mcVolumeControl2._visible = false; Stage.align = "MC"; Stage.scaleMode = "noScale"; fscommand("allowscale", "false"); fscommand("fullscreen", "false"); _quality = "BEST"; //iniciando projeto... //declarando variáveis... var display:Video; var videoAtual:String = null; var tempoAtual:Number = 0; var isPlay:Boolean = false; //botoes e mcs do player... var mcVolumeControl2:MovieClip; var btPlayPause:MovieClip; var btStop:MovieClip; //som para o controle do volume do player... var somVideo:Sound = new Sound(); //criando conexao do stream de video... var somVideo: Number = 0; var netConVideo:NetConnection = new NetConnection(); netConVideo.connect(null); //criando stream para ser usado na conexao... var netStmVideo:NetStream = new NetStream(netConVideo); //um pequeno buffer antes do filme começar... netStmVideo.setBufferTime(3); //objeto monitor de eventos do video... netStmVideo.onStatus = function(info):Void { //este if server para verificar se o filme ja acabou, rebobinando o mesmo... if(info.code == "NetStream.Buffer.Flush"){ netStmVideo.play(videoAtual); stopVideo(); } } //adicionando o stream ao nosso display no palco... display.attachVideo(netStmVideo); //função responsável por setar o video a ser carregado e tocado... function setVideo(src:String):Void { //caso o comando de tocar seja pra um video já sendo tocado, evita o recarregamento... if(videoAtual != src){ netStmVideo.play(src); //salva numa var, o video atual para posterior verificação... videoAtual = src; } else { //neste caso o video atual e o mesmo do comando, assim só recomeça a tocar... netStmVideo.seek(0); } //configurando player para que esteja tocando... btPlayPause.gotoAndStop(2); isPlay = true; } //função responsável pelo Play/Pause do filme... function PlayPause():Void { //verifica se o video esta tocando, caso sim, pausa... if(isPlay){ //salva o tempo atual para posterior continuação ao apertar em play... //esse menos 10 e para não haver corte e delay no tempo de apertar o botão... tempoAtual = netStmVideo.time - 10; netStmVideo.pause(true); isPlay = false; } else { //caso esteja parado continua a tocar da onde parou... isPlay = true; netStmVideo.pause(false); } } //função responsável pelo stop do filme... function stopVideo():Void { //resetando o tempo atual caso esteja em pause... tempoAtual = 0; netStmVideo.seek(0); netStmVideo.pause(true); isPlay = false; //joga o botão de play/pause para o frame do play... btPlayPause.gotoAndStop(1); } //setando ação dos botões... btStop.onRelease = stopVideo; btPlayPause.onRelease = function():Void { //verifica a atual situação para dizer se deve aparecer o play ou pause... if(isPlay && this._currentframe == 2){ this.gotoAndStop(1); } else { this.gotoAndStop(2); } //ativando a função PlayPause()... PlayPause(); } // //passando ao mcVolume oque ele vai controlar... mcVolumeControl2.setVolumeObject(somVideo); //por fim damos load e play em nosso video... setVideo("video1.flv"); onEnterFrame = function (){ if (isPlay == false){ if (press_Stop == false){ isPlay = true; netStmVideo.pause(false); btPlayPause.gotoAndStop(2); } } if (placa_video.hitTest(_root._xmouse, _root._ymouse)) { btStop._visible = true; btPlayPause._visible = true; //mcVolumeControl2._visible = true; return; } btStop._visible = false; btPlayPause._visible = false; mcVolumeControl._visible = false; mcVolumeControl2._visible = false; }; Valeu desde já! Abraços, Léo Compartilhar este post Link para o post Compartilhar em outros sites
Public2004 79 Denunciar post Postado Agosto 12, 2011 Não concordo com a idéia do seu cliente, dependendo do usuário quando abrir o vídeo e não escutar nada, pode imaginar que o vídeo não tem áudio... No mais, você tem um objeto controlador de volume então basta setar neste o volume em "0" utilizando para isso o método "setVolume" Att. Compartilhar este post Link para o post Compartilhar em outros sites
Leo KW 0 Denunciar post Postado Agosto 12, 2011 Eu também não concordei com meu cliente, mas não consegui faze-lo mudar de idéia. Eu coloco esse setVolume em qual parte do código? Ficaria mais ou menos assim? this.setVolume(0); E fazendo isso, a barrinha de volume já começa abaixada também?? Abraços, Léo Compartilhar este post Link para o post Compartilhar em outros sites
Public2004 79 Denunciar post Postado Agosto 12, 2011 Basicamente sim, mas tem que ver como está o código do objeto controlador do volume do seu player... Compartilhar este post Link para o post Compartilhar em outros sites
Leo KW 0 Denunciar post Postado Agosto 12, 2011 Basicamente sim, mas tem que ver como está o código do objeto controlador do volume do seu player... Está assim: //classe do controle do volume, trabalharemos como se fosse uma scroll de texto na horizontal... // dynamic class VolumeControl extends MovieClip { //declarando variáveis utilizadas dentro do mc... private var btVolume:MovieClip; private var mcSeekVolume:MovieClip; private var somVideo:Sound; function VolumeControl(){ } //função que passa ao mcVolumeControl onde achar o objeto do volume... public function setVolumeObject(som:Sound):Void { somVideo = som; } //função responsável por atualizar o volume... public function atualizaVolume():Void { //calculando volume... var v:Number = Math.round((btVolume._x / mcSeekVolume._width) * 100); //por fim setando o volume no objeto som de nosso player... somVideo.setVolume(v); } //função de inicio do mc, assim ja declara as ações de cada objeto... private function onLoad():Void { //posicionando o bt arrastavel no final da bar ou em 100% de volume... btVolume._x = mcSeekVolume._width; //adicionando ação de drag ao botão... btVolume.onPress = function():Void { //definindo ação de drag (arrastar) ao botão, onde a largura do mcSeekVolume._width e a area que ele possui a ser arrastável... this.startDrag(false, 0, 0, (this._parent.mcSeekVolume._width), 0); //ação monitor de setar o volume a medida que a barrinha e mexida... //esta classe mx.utils.Delegate e um utilitário para controle de funções em outros escopos, ou seja eu de dentro do botão ativo a função na classe... this.onMouseMove = mx.utils.Delegate.create(this._parent, this._parent.atualizaVolume); //parando monitor de volume e drag do botão... this.onRelease = this.onReleaseOutside = function():Void { this.stopDrag(); delete this.onMouseMove; } } } } Nessa parte somVideo.setVolume(v); eu troquei o v para 0 e não adiantou! Abraços, Léo Compartilhar este post Link para o post Compartilhar em outros sites
Public2004 79 Denunciar post Postado Agosto 12, 2011 Então para testar, dentro da função "onLoad", altere o tamanho da barra de volume para um valor menor; Acredito que mesmo setando o "setVolume" em "0", a função "onLoad" na sequência atualiza o volume para 100% que é o tamanho inicial da barra de ajuste... Compartilhar este post Link para o post Compartilhar em outros sites
Leo KW 0 Denunciar post Postado Agosto 12, 2011 Acabei por achar um tópico aqui mesmo no iMasters que resolvou meu caso. http://forum.imasters.com.br/topic/321741-resolvido%26nbsp%3Bduvida-com-codigo-de-player/ De qualquer forma valeu pela ajuda Public2004! Abraços, Léo Compartilhar este post Link para o post Compartilhar em outros sites