ActionScript 3.0 :: Play An Mp3 File Using NetStream.play?
Mar 23, 2010
I have a "movie player" that plays flv files using the code below (videoToPlay is the name of the file to play and is just a string). I want to use the same setup to play an mp3 file also.I tried using mySound = new Sound(); and then mySound.attachNetStream(ns);, but it gives me this error: 1061: Call to a possibly undefined method attachNetStream through a reference with static type flash.media:Sound.
I am using NetStream, NetConnection and Video object to play an mp4 file which is hosted over a web server using http.This is an AIR application and the relevant code is pasted below:
var url:String = <some http url>; connect_nc = new NetConnection(); connect_nc.connect(null);
I got a bunch of live stream from FMLE, say: "FMLE_channel1", "FMLE_channel2", "FMLE_channel3". And then on the server side, I created several corresponding republished stream called "channel1", "channel2", "channel3".
On periodical basis, we call Stream.get("channel1").play("FMLE_channel1", -1, 10, true) every 10 seconds. Similar things were done on the second channel & third channel.Soon after the above Stream.get("channel1").play() call, I should get the following events in sequence:info :NetStream.Unpublish.Successinfo :NetStream.Publish.Startinfo :NetStream.Play.Resetinfo :NetStream.Play.Start In the above case all are happy. Clients can view channel1, channel2, channel3 well.But then after a while, one of the three channels, in most case it would be channel1, will not be viewable.
With the server trace info, I found that after the Stream.get("channel1").play() call, only the following two events exists:
info :NetStream.Unpublish.Successinfo :NetStream.Publish.Starti.e. I was missing the play.reset and play.start event.I further checked and confirmed that the FMLE was publishing all three channels fine to the server. I was able to view the "FMLE_channel1" from flash clients, but not the republished "channel1". the version is FMS 3.5.0.
1) What is the recommended/best practice method for loading videos (flv, f4v, mp4, etc.) from a play list. Some of the files might be on the local file system, some might be on a streaming server and uses rtmp.
2) Does the VideoPlayer.play internally use NetStream/NetConnection objects? I could get the files to play using both these methods - not sure if one is better than the other. I didn't see any references about streaming in the VideoPlayer.play method - but it does work with rtmp URLs!
3) For a long running standalone application, how do I make sure the VideoPlayer/NetStream objects are properly released/garbage collected? Right now I am closing the netstream/netconnection after playing every file - mainly because I do not know which server/file system the next video is being loaded from.
I used NetStream.play("invalid-live-stream-url") to play an invalid live stream. The other arguments are using default, e.g. start = -2, len = -1.
The menu says that when we use the default "start" and "len" to call "NetStream.play", "Plays the live stream until it is no longer available. If a live stream of the specified name is not found, Flash Player plays a recorded stream until it ends."
However, I do not have a recorded stream on the server that has the same name as the live stream, and I did not get the expected "NetStream.Play.StreamNotFound" error.
I am trying to make a swf with one FLV playback player and 6 buttons. I've got 6 different videofiles that I want to have linked to this swf. Some of the videos are quit large.When starting the Swf, the first video has to start, after playing it, it has to stop. Then you must be able to choose which video to play by clicking one of the buttons. I don't want to have small thumbnails of the video, just plain and simple buttons.I have to have all my files, both fla, swf and xml files in the same directory (I cannot have them stored in different folders, since I have to upload this to a cms system which has limited upload properties).
I've tried to find the right script on the internet, I'm not very good at scripting myselve, actually rather poor educated there.It seems to me that I have to make an xml file with a list of all my videos, I have my default swf ready, with a FLVplayback and buttons.Now there's just the coding part....
I have created two buttons for separate audio files. Essentially if you click on the button it will play and stop. This works great! I have also injected a SoundMixer.stopAll(); to ensure if you click between both buttons that it will stop the current audio file to play the next one. My problem is when I select the 2nd button for the first time everything seems to be working...it's when I attempt to click on the first button again, that it will require 2 clicks and then it stops and plays accordingly...anyone know how I could eliminate this annoying two click process?
The main problem is that the FLV doesn't load/play, which most likely causes the secondary problems, such as the bufferClip always visible and no way to test the video and audio scrubbers.
I'm using the netstream and video object to play a video in flash. Specifically a mp4 video.
What I'm trying to do is start playing the file from a specific position (Ex. 20seconds).
However with netstreamObject.seek(20) doesn't work unless the stream has been loaded past 20seconds. Is there a way to specify starting to load at 20s? Or any other way of accomplishing this?
Hoped this would ave been fixed in as3 but this event does not always get triggered. Seems to be related to the encode. Anyways I would like to see others approach to this issue.
Currently I have place a condition in the NetStream.Play.Stop event to check if the ns.time is > the duration-1;
[as] if (ns.time > duration-1){ playing = "complete"; } [as]
I have noticed this does even work consistantly unless I change it to ns.time > duration-2.
I am trying to upload my demo reel. I compressed it to an FLV file, and used the import video command with the setting' "Load external video with playback component." After selecting my skin and hitting ok, I got a prompt that said "Netstream.play.stream not found." Why isn't this working?
I've got a play/pause movie on my timeline to control an FLV via NetStream. The idea is to switch from a play symbol to a pause symbol, but it's not working.[code]Clicking on the clip will start and stop the flv just fine, but the symbol switch doesn't happen. When I take out the ns code, just to check and see if the switch will actually work, there's no problem.What am I doing wrong? How can I get my clip to change from a play to a pause symbol?
I'm recording audio using FMIS, the file is being saved out as a FLV file and I am able to play it back. Eventually that file may be deleted after some time and I would like to notify the user if the file is no longer available. I was expecting to see NetStream.Play.StreamNotFound after deleting the file on the server but I'm not getting that message. Instead I get:
--> NetStream.Play.Reset--> NetStream.Play.StartAnd nothing plays which is expected since the file is deleted, but I dont get the right message. I'm calling the file like so:ns.play ("flv:file_to_stream");
I'm streaming mp3 on flash media server 3.5 on linux version, and very often come accross with that problem, when the buffer.length become 0 on client side, the streaming will stop with NetStream.Play.Stop event, and will not be continued. I think this case it should wait always till the data arrives and never should stopping. Some more info : I tested on applications/live folder, and the mp3 files are created dynamically during the playing, and the creation speed is almost the same like the playing speed, so those are not fix files.
I would like to have the possibility to detect when NetStream is not working (i.e. the name used in initialization can't be found on the server side). The StreamNotFound doesn't work at all. I've read that it's the fault of the Flash Media Server, which automaticaly creates new stream, if it cannot be found (of course it's an empty stream - what is wrong from my point of view). Is it true? If yes, can I disable it on the server side, so I could easily detect if the stream name is correct?
i've created a sub-folder called dvr under fms 4.0 applications. i made a test of playing a video named sample.flv then at the same time i publish it to the same fms 4.0 server with a different video name: "mergedVideo".the asc at the fms server as following:
Is anyone having trouble with Chrome getting NetStream.Play.Stop early in Chrome? Seems to fire around the time the buffer has filled. Same code is and has been working fine in all other browsers for some time.
i have application that streams videos from fms .i try to play video of 240 seconds, but when playback reaches 180 seconds i got NetStream. play. stop . it happens regularly at the same time.why does it happen? is it encoding of the video??
I would like to pass a value from a text box on stage as the URL or filename to the NetStream.play() argument. example:
var url:String = url_text.text; var conn:NetConnection = new NetConnection(); conn.connect(null);
[Code].....
The point of the matter is that I'm pulling the values from JavaScript/HTML using the ExternalInterface which changes as the user selects next on a HTML page. The page name (URL) is being parsed and passed back as the video filename. I'm using the text boxes currently just to test/view the values being received and sent to JavaScript. The value send and receive fine, I just can not seem to pass the value into the NetStream.play(JavaScriptValue).
function getTextFromJavaScript(str:String):void { sending_ti.text = str; var jsArgument:String = sending_ti.text;
I'm working on a project using a MVC design pattern where flvs are played form a xml playlist. I noticed something strange in the Output window. For the first flv the NetStatusEvent NetStream.Play.Start fires once, the second one fires twice, the third one three times....
Here is the part of the code where I load the video :
I'm using netstream to show a video in .flv.Over this video I need to show a couple of short animations, and when they play, I need to paus the long video so it doesn't plays in advance in the background.I've got this script to pause the movie:
Code: btnPlay.onRelease = function () { ns.pause(); }
But how do I apply it so that when the timeline hits a certain frame, it calls it. I mean, the user can't really know when to stop to see the animations, so it has to be done at a specific time.
NetStream.play(streamName, -1); This seems to be working wrong.if I have recorded an flv on server using FMS and FMLE with only audio with name "myaudio" and then after if I try to play a live stream using NetStream.play("myaudio", -1) then it plays the recorded stream. I believe that documentation says that it should start a live stream instead of playing recorded stream as the second argument is -1. Is this a bug in NetStream.play method?
I have 3D videos encoded with each eye's content side-by-side on each frame. What I want to do is take the left-half and over-lay it on the right-half. (I'll then change with the colors and the overlaying so that someone with blue-cyan 3D glasses can view the video).
I tried to attach a single NetStream to two video objects and offset them, but that only let the stream play on one object.
Video broadcast using VLC to flv file. I am using the NetConnection, NetStream and Video to play it in a flash. In Chrome and IE everything works fine, but in Firefox and Opera NetStream often dispatch event NET_STATUS with info.code = NetStream.Buffer.Flush and NetStream.Play.Stop and video is a slowdown.
"When using progressive download (FLV), NetStream's .play(url) method is not resolving relative URLs in the expected way. Instead of being based off the HTML's embed location and reading the "base" param, it uses the location of the SWF file trying to load it." I have found it on the web while searching for a solution to exactly the same problem. Unfortunately no one provided an answer. If it is a bug it is in fp ever since and no one has done anything with it. Does anybody know any solution/workaround? I assume it is not possible to read base param value from inside of the swf in order to resolve paths manually?
I am experiencing an issue with playback on RTMPE streams. after investigation it seems that the FMS server is firing the NetStream.Play.Complete message at random points, indicating that a stream has ended. This is happening and random points during the stream, not even close to the end.[code]As you can see roughly 17mins into playback...although the stream is 1 hour 24mins long.I have tested this numerous times, and each time it is at a different point in the stream.Intermittently the NetStream.Play.InsufficientBW warning is being fired prior to NetStream.Play.Stop.I am using a player built on OSMF 1.5
I have a website banner made in Flash. I have added a music file to it and Play and Stop buttons. I also have a Replay button to replay the banner animation once it stops.
I have put the music on a separate frame so that it will not play automatically when the banner loads. I have made the Play button direct to the frame the music is located at so that when clicked, it will go to that frame and play the music file.
The problem I am currently having is that if I click the Play button more than once, it will play the music file again on top of the current play-through.
So if I click Play, the music will play. Then if I click it again, the music will play again, but on top of the first instance of the music, so two instances of it will now be playing and it sounds horrible.
I would like to make it so that if you click Play when the music is playing, it will not play the music again until the music has stopped.
I have a series of mp4 videos (H.236 @ 22 fps) streaming from an akamai FMS serve via RTMP protocol in flash player 9+ with AS 3.My goal is to create client side playlists that smoothly switch from one stream to another. I am creating these playlists using a series of netStream. play (filename,start,len) methods. If I don't use an offset for the start parameter, then the stream switches smoothly from one video to the next with not noticeable jump or jerkiness. However if I introduce a start offset, say a few seconds in, I start to see a quick little hiccup or pause between the seams as it switches from one playlist stream to the next.
I am streaming pre recorded audio files (mp4) to an AIR client. I have tried two different solutions, streaming the file directly with the NetStream.play("mp4:xxxxx.m4a") and creating a server side playlist, adding the same sound clip and then streaming the playlist. The problem is, when streaming the playlist i get a few NetStream.Play.InsufficientBW, this does not happen when streaming the file direct. Both solutions uses bufferTime=1.0
I would like to use a server side playlist to implement a simple key solution so that the client dont know the full path to the file, but instead sends a key to a custom server side function that looks up the file path and creates a stream for the client.
The stop button plays as expected. The play/pause button plays as expected. The issue is when you press pause which will cause the play button to appear, then press stop. the video automatically plays and it shouldn't. I have bolded the control button script for convenience.