Jag börjar så smått få ihop min spelare, men det fattas naturligtvis en mass. Hej Borde Det inte Vara så här: När jag tar upp låten i Sound Forge så står tiden som 00:03:05.295 Buffer Size Kanske inte är hela filen utan bar det den har laddat i minnet? Det är så jag har uppfattat det som. Hej igen Antalet bytes: 31920,375kb * 1024 32686464000 Kom på nu att det kanske inte är mp3or han håller på med och då är min teori med joint stereo inte korrekt... och skulle det vara mp3or så antar jag att man måste ta med vilken kbps den är i också... Oj 16bit = 2 bytes ska det givetvis vara... så nu sprack hela min uträkning ännu mer =) Fast eftersom 16bit blev 2 bytes så kan man dela med 2 kanaler istället och få samma resultat... så jag kanske inte är helt ute och cyklar ändå? =) Hej igen Din uträkning är väl nu lika som min eller? (efter min justering av 16bit = 2 bytes och tillägg av att dela med 2 kanaler) Det här ser högintressant ut. Jag vill tacka för visat intresse, och jag skall kolla så det stämmer. Nu försöker jag att räkna ut resultatet så att jag kan få det uppdelat i minuter och sekunder. Dim Tid As Double Hej igen Tack Sven, men när det gäller längden så tar jag fram den med hjälp av FileLen, och det blir ju i byte. Jag konverterar inte om det utan refererar bara till det. Trodde att jag var klar men icke. Hej Helt underbart Sven. Jag är dig stort tack skyldig. HejRäkna ut hur lång speltid!
Min fråga:
Hur räknar jag ut speltiden?
Jag vet inte om jag kan få fatt på alla uppgifterna, men
på en låt gäller följande:
Buffer Size 176400 bytes (172,266kb) (ser lustigt ut)
Bits per sampe 16 bits
Sammple per Sec 44100
Channels 2
Storlek i kb 31920,375 kb.
Räker dessa uppgifter för att räkna ut speltiden?
I så fall, hur går man till väga?Sv: Räkna ut hur lång speltid!
Om jag inte är alldeles ute och reser
bör det bli 31920375 /2 * 44100 = 362 sek ca 6 min
Buffern kör med 2 sek framförhållning
SvenSv: Räkna ut hur lång speltid!
Tid = Buffer Size /Channels/(16/Bits per sample)/Sammple per Sec
Jag får det till 2 sekunder.Sv: Räkna ut hur lång speltid!
Det stämmer ju inte alls med dom siffror som vi bollar med. Finns det någonting annat som påverkar?Sv: Räkna ut hur lång speltid!
Sv: Räkna ut hur lång speltid!
Jag har den senaste veckan jagat runt för att kunna plock fram sådana här uppgifter, och ett bra ställe är ju Microsoft. Men som du vet, leta där...
Jag hittade ialla fall ingenting av värde.Sv: Räkna ut hur lång speltid!
>När jag tar upp låten i Sound Forge så står tiden som 00:03:05.295
Beträffande buffsize så har det inte med speltid att göra
så den kan vi glömma.
Det som är intressant är samlingshastighet 44100
dvs eftersom man klämmer 16 bits varje sekund så blir det
88200 bytes varje sekund.
Om du refererar till samma låt 03:05 som är Storlek i kb 31920,375 kb.
Så blir det 31920375 bytes / 88200 = 362 sek
Men eftersom det är stereo så skall denna mängd delas
ytterligare med 2 då hamnar Vi på 181 sek 3 min 1 sek.
Kan inte se att detta resonemang haltar.
SvenSv: Räkna ut hur lång speltid!
16bit = 4 bytes
32686464000 / 4 bytes = 8171616000
8171616000 / 44100 = 185297,415 (avrundat)
185297,415 / 1000 = 185,297415
Och det var väl 185,3 sekunder?
Om det är korrekt har jag ingen aning om... men i det här exemplet fungerade det =)
Och att jag fick fram rätt antal sekunder innan jag delade 2 (för antalet kanaler) kan bero på att dom flesta mp3or är joint stereo och det tar inte dubbelt så mkt plats.
Testa gärna det här på andra mp3or och se om det fungerar!
ThomasSv: Räkna ut hur lång speltid!
ThomasSv: Räkna ut hur lång speltid!
ThomasSv: Räkna ut hur lång speltid!
(efter en logisk slutsats av filstorleken så är det inte mp3or vi räknar på och alltså försvinner det där med joint stereo)
ThomasSv: Räkna ut hur lång speltid!
Men du har en poäng där Thomas man skall tydlgen anse
att en Kb = 1024 bits (idiotiskt men !)
Då kan du göra så att du multiplicerar mitt svar med 1.024
Så blir det (1.024 * 31920375) / (4 * 44100) = 185 sek= 3 min 5 sek
Voila mvh
Sven
Sv: Räkna ut hur lång speltid!
Det skulle vara intressant om nån har nån mer wav-fil vi kan räkna på och se om det stämmer.
ThomasSv: Räkna ut hur lång speltid!
PS
Det är inte mp3 det gäller det är wav, och inte vilka wav som helst utan mina egna inspelningar.
TACK
DSSv: Räkna ut hur lång speltid!
Vad som inte lyckas är att om det är t ex 3 min och 2 sec, så ville jag ha det utskrivet som 3,02.
Så här försöker jag:
<code>
Dim strTid As Double, tidArray, helaSekunder As Double, helaMinuter As Double, resultat As Double
strTid = (1.024 * Filelength) / (4 * 44100)
tidArray = Split(strTid, ",")
helaSekunder = CInt(tidArray(0))
If Len(helaSekunder) = 1 Then
helaSekunder = 0 & helaSekunder
Else
helaSekunder = helaSekunder
End If
' räkna fram minuter
helaMinuter = helaSekunder \ 60
' Hur många sekuder blev det kvar?
helaSekunder = helaSekunder - (60 * helaMinuter)
resultat = helaMinuter & "," & helaSekunder
</code>
Vad tror ni?Sv: Räkna ut hur lång speltid!
Dim helaSekunder As Double
Dim helaMinuter As Double
Dim resultat As Double
Tid = (1.024 * Filelength) / (4 * 44100)
helaSekunder = Tid Mod 60
helaMinuter = Tid \ 60
resultat = helaMinuter + (helaSekunder / 60)Sv: Räkna ut hur lång speltid!
En sista kommentar. Eftersom du uttrycker Fillängd som 31920.375 Kb
Så blir det :
(1024 * 31920.375) / (4 * 44100) = 185 sek= 3 min 5 sek
DSSv: Räkna ut hur lång speltid!
Jag tror mig nu har ala uppgifter som jag behöver.
Jag vill tacka alla som har visat intresse att lösa detta för mig, ingen nämd ingen glömd.Sv: Räkna ut hur lång speltid!
När det gällde Andreas kod, så blev det en massa decimaller, ville inte ha det, så jag tror att min kod räkna lika bra(tror jag)
Problem dock
När det bara är en decimal, så ville jag att det skulle finnas en inledande nolla, men jag får inte till det:
<code>
Dim strTid As Double, tidArray, helaSekunder As Double, helaMinuter As Double, resultat As Double
strTid = (1.024 * Filelength) / (4 * 44100)
tidArray = Split(strTid, ",")
helaSekunder = CInt(tidArray(0))
If Len(helaSekunder) = 1 Then
helaSekunder = "0" & helaSekunder
Else
helaSekunder = helaSekunder
End If
' räkna fram minuter
helaMinuter = helaSekunder \ 60
' Hur många sekuder blev det kvar?
helaSekunder = helaSekunder - (60 * helaMinuter)
resultat = helaMinuter & "," & helaSekunder ' & "," & decimalSekunder
</code>
Några förslag?Sv: Räkna ut hur lång speltid!
För att komma till final så bör du lösa det så här.
Option Explicit
Const SEKUND = 0.99999 / 86400
Private Sub Command1_Click()
Dim playTime As Single
Dim FileLength As Long
FileLength = 31920375
playTime = (1.024 * FileLength) / (4 * 44100)
playTime = playTime * SEKUND
Label1.Caption = Format$(playTime, "hh:mm:ss")
End Sub
mvh
SvenSv: Räkna ut hur lång speltid!
Det fungerar perfekt.
Törs jag komma med en följefråga??
Det skulle vara perfekt att presentera detta som "digitala" siffror.
Något uppslag?
Jag antar att siffrorna skall ritas eller???Sv: Räkna ut hur lång speltid!
Digitala siffror finns redan en uppsjö av exempel.
Återkommer
DS