Προς το περιεχόμενο

DB mp3 με PHP+MySQL


Em_Zed

Προτεινόμενες αναρτήσεις

Δημοσ.

Είμαι κι εγώ ένας από τους πολλούς φοιτητές με προβλήματα στην πτυχιακή τους. Έχοντας ήδη αποτύχει στην πρώτη, έψαχνα να βρω ένα ότι να ‘ναι θέμα για να τελειώνω. Και βρήκα.

 

Ένας τύπος, φίλος του καθηγητή μου, δουλεύει σε ένα ραδιοφωνικό σταθμό και επειδή έχει πολύ μεγάλο μουσικό αρχείο ήθελε μια εφαρμογή για να μπορεί να βρίσκει και να επιλέγει κομμάτια. Μου το πρότεινε ο καθηγητής και δέχτηκα.

 

Όταν μίλησα μαζί του, κατάλαβα ότι θέλει κάτι σαν το search των windows. Μια φόρμα όπου να μπορεί να εισάγει κριτήρια, πχ τραγούδια με το love στον τίτλο, και να εμφανίζει από κάτω σε ένα πλαίσιο ότι βρίσκει. Στη συνέχεια, με το πάτημα ενός κουμπιού, να μπαίνουν σαν λίστα στο winamp, ή να μπορεί να επιλέξει μερικά από τα κομμάτια και να κάνει το ίδιο.

 

Σε αυτό που κολλάω είναι ότι οι βάσεις που είχαμε κάνει σε εργαστήρια είχαν στοιχεία σε πίνακες, και ήταν όλα κείμενα. Δηλαδή ότι ψάχναμε ήταν έτος, για παράδειγμα, ή πόλη ή κωδικό, και με μια select το παίρναμε. Τώρα που έχω «πραγματικά» αρχεία, αρχεία mp3, σε ένα dir, που δεν είναι μια λέξη, τι γίνεται; Πως μπορώ να επεξεργαστώ τα στοιχεία τους; Σκέφτομαι να το κάνω σε php+MySQL, και μου είπαν ότι μπορεί να γίνει.

 

Μήπως ξέρει κανείς που μπορώ να βρω παραδείγματα τέτοιων εφαρμογών;

Ευχαριστώ.

  • Απαντ. 36
  • Δημ.
  • Τελ. απάντηση
Επισκέπτης
Δημοσ.

Φίλε μου στην βάση δεν θα αποθηκεύσεις το mp3, αλλά τη διεύθυνση στην οποία βρίσκεται.

Δημοσ.

Ωραία. Πες οτι τα mp3s είναι στο dir songs, στον δίσκο Ζ.

Πως θα γίνει η αποθήκευσή τους, με ποια μορφή; Στον πίνακα, αν γίνει με πίνακα,τι θα γράψω, το παθ του κάθε αρχείου;

Και η αναζήτηση πως θα γίνεται; Μην ξεχνάς πως η επιστροφή πρέπει να δίνει αρχεία mp3, (όπως όταν κάνεις το ίδιο με το σερτς των γουιν)

Δημοσ.
Ωραία. Πες οτι τα mp3s είναι στο dir songs' date=' στον δίσκο Ζ.

Πως θα γίνει η αποθήκευσή τους, με ποια μορφή; Στον πίνακα, αν γίνει με πίνακα,τι θα γράψω, το παθ του κάθε αρχείου;

Και η αναζήτηση πως θα γίνεται; Μην ξεχνάς πως η επιστροφή πρέπει να δίνει αρχεία mp3, (όπως όταν κάνεις το ίδιο με το σερτς των γουιν)[/quote']

 

Αν τα mp3 δεν έχουν tags και η πληροφορία για τον τίτλο και τον καλλιτέχνη ειναι απο το filename (π.χ ΤάκηςΓκοτζίλας_ΜαναΓιατιΜεΓεννησες.mp3), τότε google desktop search η κάποιο αντίστοιχο.

Αν η πληροφορία ειναι στο mp3 tag (που προυποθέτει οτι οποιος καταχωρεί τα κομματια πρεπει να φροντίζει να την βάζει), τοτε πρεπει να κάνεις με καποιο cron ενα sweep τα τραγούδια που βρίσκονται στο directory και να διαβάζεις τα tag τους (ειναι πολύ ευκολο, ανοιγεις το αρχειο και ειναι στο τέλος η την αρχή ανάλογα με το version).

Μετά θα έχεις ενα πίνακα για τα songs οπως π.χ

Table:Songs

id

path

title

artist_id

genre_id

album_id

comments

year

company_id

country_id

κτλ, κτλ

 

Οποτε κάθε φορά που ψάχνει θα κάνεις ενα select εδω μεσα και θα επιστρεφεις τα αποτελέσματα. Για να βάλεις τα αποτελέσματα στο winamp, μπορεις να το κάνεις μεσω com+ (νομιζω οτι υποστηρίζει κάτι τέτοιο ο winamp, αλλα δεν την κοβω κιολας, και φαντάζομαι οτι μιλας για windows :) )

Δημοσ.

Μεγάλε bandito, κάτσε γιατί έσυ τώρα κάτι μου λες.

Λοιπόν, αυτός μου είπε οτι τα mp3 έχουν στοιχεία στο idtag, γιατί έστι τους βολεύει αυτούς στο σταθμό, και όλα τα τρακς τους έχουν πλήρη tags.

Aυτό που με μπέρδεψε είναι αυτό το "...πρεπει να κάνεις με καποιο cron ενα sweep τα τραγούδια που βρίσκονται στο directory" και επίσης το "...ανοιγεις το αρχειο και ειναι στο τέλος η την αρχή ανάλογα με το version"

Φαντάζομαι οτι το cron και τα sweep μπορούν να γίνουν με συναρτήσεις ή scripts, έτσι; Τώρα το άνοιγμα των mp3 πως γίνεται από την γλώσσα προγραμματισμού; Τέλος, η επιστροφή πρέπει να δίνει το ίδιο το μπ3 αφού μετά πρέπει να μπορεί να παίξει.

 

Σευχαριστώ band. Σίγουρα θα χρειαστώ την βοήθεια σου στο μέλλον. Μπορώ να σε ενοχλήσω αν χρειαστώ κατι;

Δημοσ.
Μεγάλε bandito' date=' κάτσε γιατί έσυ τώρα κάτι μου λες.

Λοιπόν, αυτός μου είπε οτι τα mp3 έχουν στοιχεία στο idtag, γιατί έστι τους βολεύει αυτούς στο σταθμό, και όλα τα τρακς τους έχουν πλήρη tags.

Aυτό που με μπέρδεψε είναι αυτό το "...πρεπει να κάνεις με καποιο cron ενα sweep τα τραγούδια που βρίσκονται στο directory" και επίσης το "...ανοιγεις το αρχειο και ειναι στο τέλος η την αρχή ανάλογα με το version"

Φαντάζομαι οτι το cron και τα sweep μπορούν να γίνουν με συναρτήσεις ή scripts, έτσι; Τώρα το άνοιγμα των mp3 πως γίνεται από την γλώσσα προγραμματισμού; Τέλος, η επιστροφή πρέπει να δίνει το ίδιο το μπ3 αφού μετά πρέπει να μπορεί να παίξει.

 

Σευχαριστώ band. Σίγουρα θα χρειαστώ την βοήθεια σου στο μέλλον. Μπορώ να σε ενοχλήσω αν χρειαστώ κατι;[/quote']

 

cron = scheduled task = script που τρεχει ανα τακτα χρονικά διαστήματα. Επειδή εχεις directory μπορεις να το τρεχεις οταν ανιχνεύσεις αλλαγή στο directory (δηλαδη προστέθηκε ενα καινουργιο αρχειο).

 

sweep = Παιρνω ενα ενα τα αρχεια, τσεκάρω αν τα εχω κοιτάξει παλιότερα και αν ναι δεν ασχολουμαι (αν κοιτάς αλαγγες στο directory ομως μπορεις να κοιτάς μόνο όσα άλλαξαν που ειναι και καλυτερο γιατι θα "πιάνεις" και τις αλλαγες στα ηδη υπαρχοντα κομματια, οχι μονο σε αυτά που προστέθηκαν"

 

h php για windows υποστηρίζει com+ objects.

An ο winamp κάνει expose αυτες τις συναρτήσεις (p.x show, addtolist, play), τοτε εισαι οκ.

 

Συμβουλες:

1) Mάθε τι ειναι η php (http://www.php.net)

2) Μάθε τι ειναι το mp3 idtag (εχει πολλα versions , παλιά μεν, αλλα πρεπει να τα υποστηρίζεις ολα φαντάζομαι

3) Μάθε πώς αναγνωρίζεις αλλαγες στο filesystem, ktl

 

Y.Γ H php ανοίγει αρχεία οπως η κλασσικη C

$mp3file = fopen($path, "r");

μπλα, μπλα

 

Δυστυχώς ο χρόνος μου ειναι περιορισμένος, αλλα ρώτα εσύ και βλέπουμε

Δημοσ.

ΟΚ.

Βασικά δεν έχω αρχίσει ακόμα την υλοποίηση απλά ήθελα να πάρω μια πρώτη ιδεά.

ΡΗΡ έχω αρχίσει να μαθαίνω εδώ και κανά εξάμηνο περίπου, αλλά είμαι στην αρχή.

Σευχαριστώ για τον πολύτιμο χρόνο σου. Αν αντιμετωπίσω κάποιο πρόβλημα στην συνέχεια ελπίζω να έχεις χρόνο.

Και πάλι σευχαριστώ

Δημοσ.

Χμ... προσεκτικά γιατί δεν έχω όρεξη να αρχίσουν αντιπαραθέσεις, θα έλεγα ότι για το πρόγραμμα αυτό θα χρειαστείς Windows API, και επομένως ΔΕΝ θα πρότεινα php/mysql. Το πρόγραμμά σου δεν χρειάζεται να είναι web-based, όπου υπερέχει η php, θα είναι κλασσική win32 εφαρμογή.

 

Επομένως τέτοιο project θα το ξεκινούσα σε C/C++/C# ή καλύτερα Delphi που έχει πολύ μικρή καμπύλη μάθησης και είναι τέλειο για τέτοιες μικρές βάσεις δεδομένων...

Δημοσ.

Χώρις πρόθεση για αντιπαραθέσεις, φίλε αλκη, λέω για ΡΗΡ γιατί την σ++ δε την πάω καθόλου, ήταν ο λόγος που έκανα προγραμματισμό ΙΙ για 3 εξάμηνα, και δεν νομίζω οτι μπορώ να επικοινωνήσω μαζί της.

Η ΡΗΡ από την άλλη μου φαίνεται πιο φιλική. Αλλά τώρα που το λες, το φαντάζομαι περισσότερο σαν εφαρμογή και λιγότερο σαν μια εφαρμογή που θα ανοίγει από σελίδα. Χμμμ...νομίζω οτι έχω πρόβλημα.

Βασικά την ΡΗΡ την έχω ξεκινήσει κάμποσο καιρό τώρα,και για να κάτσω τώρα να μάθω Delphi, ξέρω γω, μου φαίνεται κομμάτι δύσκολο...

Τώρα με'βαλες σε σκέψεις. Τι κάνουμε τώρα;

Δημοσ.
Βασικά την ΡΗΡ την έχω ξεκινήσει κάμποσο καιρό τώρα' date='και για να κάτσω τώρα να μάθω Delphi, ξέρω γω, μου φαίνεται κομμάτι δύσκολο...

Τώρα με'βαλες σε σκέψεις. Τι κάνουμε τώρα;[/quote']

 

mia psifos akomh gia to Delphi.

den proteino php me tipota pantos!! ;-)

Δημοσ.
Χμ... προσεκτικά γιατί δεν έχω όρεξη να αρχίσουν αντιπαραθέσεις' date=' θα έλεγα ότι για το πρόγραμμα αυτό θα χρειαστείς Windows API, και επομένως ΔΕΝ θα πρότεινα php/mysql. Το πρόγραμμά σου δεν χρειάζεται να είναι web-based, όπου υπερέχει η php, θα είναι κλασσική win32 εφαρμογή.

 

Επομένως τέτοιο project θα το ξεκινούσα σε C/C++/C# ή καλύτερα Delphi που έχει πολύ μικρή καμπύλη μάθησης και είναι τέλειο για τέτοιες μικρές βάσεις δεδομένων...[/quote']

 

Χωρίς να υποστηρίζω που θα το πρέπει να το κάνει (εγώ δεν θα το έκανα σε php πάντως), τι χρειαζεται το API των windows?

 

Επιπλέον αν αυτό που θα παίξει σε ραδιοφωνικό σταθμό (με έσοδα απο δφμ κτλ) δεν μπορει να ειναι με κλεμμενο software, κλεμμενες βάσεις, κλεμμενα licences.

Συμφωνώ πάντως "γενικά" php ειναι εντελως αντιπαραγωγική.

.net το τελειωνα σε 1,2 μερες max.

Δημοσ.

ΟΚ, το'πιασα το υπονοούμενο.. Οχι ΡΗΡ.

Αλλά για ποιο λόγο κυρίως; Επειδή θα είναι web εφαρμογή, ενώ κάτι τέτοιο θα βόλευε σαν μια εφαρμογή των win, ή επειδή οι προγραμματιστικές της δυνατότητες δεν είναι αρκετές / θα με δυσκολέψουν στην υλοποίηση;

 

Όταν λέτε οτι η Delphi έχει μικρή καμπύλη μάθησης, ή οτι η VB6 σε 2-3 μέρες μαθαίνεις οτι θες, αυτό ισχύει για άτομα σαν εσάς που μπορεί να την έχουν μάθει ήδη (!!!) ή για κάποιον ο οποίος δεν έχει και την τεράστια εμπειρία στον προγραμματισμό, και πόσο μάλιστα σε καμία από αυτές τις δύο γλώσσες; (μόνο c++)

Δημοσ.
Όταν λέτε οτι η Delphi έχει μικρή καμπύλη μάθησης, ή οτι η VB6 σε 2-3 μέρες μαθαίνεις οτι θες, αυτό ισχύει για άτομα σαν εσάς που μπορεί να την έχουν μάθει ήδη (!!!) ή για κάποιον ο οποίος δεν έχει και την τεράστια εμπειρία στον προγραμματισμό, και πόσο μάλιστα σε καμία από αυτές τις δύο γλώσσες; (μόνο c++)

 

apo vb makria!!!! an kai tha mporouses na to kaneis kai ekei, den exei na sou prosferei para kakes programmatistikes sinithies......

 

gia to delphi tora, sou to protino dagkoto. kane to ejhs test kai phgene sth selida http://delphi.about.com/od/database/ kai jekina apo to beginner's guide kai siga siga sta ypoloipa.

 

kai mesa se liges ores tha mporeis na exeis ftiajei mia dikia sou database efarmogh kai sintoma tha exeis kai kati na dijeis sto kathigiti sou. malista oso pio poli orimazoun oi prodiagrafes tis efarmogis sou kai esy mazi toys, tha blepeis poso eykolo einai na to kaneis sto delphi giati mporei na sou dosei ayto pou thes apo thn proth stigmh pou to anoijeis.... mexri kai otan pia gineis dinatos programmatistika paiktis akomh tha sou prosferei!! :wink:

Δημοσ.

Σχετικά με το Windows API: υπάρχουν συναρτήσεις οι οποίες διαβάζουν τα ID3 tags. Κατευθείαν, χωρίς να ασχολείται με file open και τα σχετικά. Επίσης θα χρειαστεί να στείλει την λίστα στο WinAmp. Λογικά αυτό θα γίνεται με SendMessage. Καλύτερα λοιπόν να έχει απευθείας πρόσβαση στο API, πιστεύω ότι θα του χρειαστεί.

 

Για VB θα έλεγα όχι, γιατί θα πρέπει να αρχίσει τα Declare Function .... για να έχει πρόσβαση στο API.

 

Για την καμπύλη μάθησης του Delphi. Την βάση δεδομένων θα την καταφέρεις πιστεύω χωρίς κώδικα (το Delphi είναι RAD) οπότε αυτό είναι αρκετά θετικό. Για το διάβασμα των tags και την αποστολή της λίστας στο winamp θα χρειαστείς έτσι κι αλλιώς βοήθεια, σε οποιαδήποτε γλώσσα.

 

Αν σου είναι εύκολο να βρεις το Delphi, θα έλεγα να κάνεις μια δοκιμή. Για έμπειρους προγραμματιστές η εργασία αυτή όντως δεν παίρνει πάνω από 1-2 απογεύματα, αλλά εσύ θα χρειαστείς και καμιά βδομάδα για να συνηθίσεις την γλώσσα...

 

Όσο για την PHP: θα είναι σαφώς πιο δύσκολο από php να δηλώσεις τα αντίστοιχα structs και να καλέσεις τις σχετικές συναρτήσεις για να επικοινωνήσεις με το winamp. Επίσης σε Delphi, VB κτλ στον "πελάτη" θα πας απλά ένα εκτελέσιμο, ενώ με την php θα πρέπει να του την εγκαταστήσεις, όπως και την mysql, και θα φας κι εκεί χρόνο (και θα του βαρύνεις χωρίς λόγο το μηχάνημα).

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...