Visst går det!
var mySound:Sound = new Sound();
mySound.loadSound("filnamn.mp3", true);
Den andra parametern i metoden loadSound anger om det är ett event ljud (false) eller ett strömmande (true). I ditt fall ska du använda 'true'.
6 svar · 830 visningar · startad av lenap
Hej
Jag försöker göra något som jag inte ens vet om det är möjligt, men jag tycker att det borde vara det. Jag vill kunna välja en ljudfil från en databas, med hjälp av en querystring i asp, och spela upp den i en flashspelare.
Går det att spela upp en ljudfil i flash utan att först importera den??
I flashfilen kan jag lägga in asp som hämtar rätt ljudfil-id från databasen, tar reda på filnamnet och sedan talar om var på servern själva ljudfilen ligger. Men går den att spela upp i flash?
Vet nån?
Visst går det!
var mySound:Sound = new Sound();
mySound.loadSound("filnamn.mp3", true);
Den andra parametern i metoden loadSound anger om det är ett event ljud (false) eller ett strömmande (true). I ditt fall ska du använda 'true'.
Som princip borde väl detta gå.
Det är säkert belastande...
...
mySound.loadSound("din_mp3fil.asp?id=1", true);
[b]din_mp3fil.asp[/b]
'....
Set rs = connection.execute("SELECT mp3_namn,mp3_data FROM min_mp3musik WHERE id=" & id)
Response.ContentType = "application/mp3"
Response.AddHeader "content-disposition","attachment; filename="& rs(0)
Response.BinaryWrite rs(1)
Response.Flush
Response.End
Tack för två bra tips.
Tyvärr kan jag Flash alldeles för dåligt så jag får det inte att funka och har lite för ont om tid för att lära mig från grunden. Men jag skulle vilja ha den varianten i slutändan.
Tills vidare tror jag att asp-koden som Jesper T skrev ligger mer på min nivå, ska testa den. Tror du att det är väldigt belastande? Hur då?
/Lena
Ja... Den är ju ganska belastande för servern, då servern måste skicka en massa data. CPU-belastningen är ju dock inte så hög.
Om du använder ASP.Net så kan jag ge dig lite tips om det om du har lust. Då finns ju fördelen att man enkelt kan cacha låten och därefter stänga databasen. System.IO.BufferedStream kan användas för att läsa in den från just binary som finns i databasen. Datan kommer då ligga i byte[] format.
Så vad du gör är att skapa ett OleDbDataReader (eller Sql- eller Odbc-) eller en adapter som du hämtar datan med. Lite kod:
public byte [] getImage(int imageNumber)
{
string strSql = "SELECT * FROM File";
DataSet ds = new DataSet("Image");
OdbcDataAdapter tempAP = new OdbcDataAdapter(strSql,this._objConn);
tempAP.Fill(ds,"Table");
try
{
this._objConn.Open();
byte [] buffer = (byte [])ds.Tables["Table"].Rows[imageNumber]["Data"];
return buffer;
}
catch{this._objConn.Close();return null;}
finally{this._objConn.Close();}
}
den är för att läsa bilder från en databas, men binärt som binärt... Sedan skickar du resultatet binärt.
ASP belastas även genom att databasen är öppen, kom jag på nu.
Väldigt intressant tråd. Har funderat på att bygga en mediespelare i Flash själv nämligen ;). Så om jag/vi knåpar ihop något så ^^. Har du lust med det så kan jag stå för back-end.
//Henke
Jag kan inte säga att jag är en stor beundrare av att lägga in större binära filer i SQL, själv skulle jag föredragit att lägga upp filer och ha en referens lista i SQL med filpath osv. But to each his own, det skulle fungera att göra så som de sagt.
Nej alltså, själva filen ligger inte i databasen. Bara en referens.
Att ha connection till databasen öppen under hela tiden man spelar ljudfilen, det låter helt vansinnigt.
En mediespelare i Flash verkar ju faktiskt inte vara så himla svårt. Jag är som sagt riktig nybörjare på flash, men bättre på asp och databaser.