Videos mit pymedia abspielen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Roman
User
Beiträge: 65
Registriert: Dienstag 14. März 2006, 09:10
Wohnort: Berlin

Hallo,
Ich habe (mal wieder :roll: ) eine Frage...
Also ich möchte gerne Videos mit pymedia abspielen. Leider habe ich ein Problem mit der Callback() Klasse, da ich sie irgendwie noch nicht einmal aufgerufen bekomme. :(
Die Doku sagt, man solle folgenden code nutzen:

Code: Alles auswählen

c = Callback()
player = pymedia.Player(c) 
Das gibt bei mir aber schon nach der ersten Zeile eine Fehlermeldung, dass "Callback" nicht definiert sei...
Hat irgendjemand hier schon mal damit gearbeitet und kennt sich aus??

Danke schon mal im Voraus für Antworten,
Roman
Benutzeravatar
DatenMetzgerX
User
Beiträge: 398
Registriert: Freitag 28. April 2006, 06:28
Wohnort: Zürich Seebach (CH)

Code: Alles auswählen

Here is the simple way of calling Player:
  player= pymedia.Player()
  player.start()
  player.startPlayback( '<YOUR_MP3_FILE>' )
  while player.isPlaying():
    time.sleep( 0.01 )
 
Player supports the following callback:
  class Callback:
    # called _before_ the audio frame is rendered
    # return your audio data after you process the audio frame
    # or return none for using the default sound processing
    def onAudioReady( self, afr ):
      pass
    
    # Called when the video frame is about to be rendered
    def onVideoReady( self, vfr ):
      pass
 
Use the callback like below:
  c= Callback()
  player= pymedia.Player( c )
Musst zuerst eine Klasse callback erstellen
Roman
User
Beiträge: 65
Registriert: Dienstag 14. März 2006, 09:10
Wohnort: Berlin

Hallo,
Öhm, das habe ich wohl irgendwie nicht so gut verstanden in der Doku. :oops:
Aber wsa schreibe ich denn in eine solche Klasse?? Ich habe ehrlich gesagt keine Ahnung, wie ich das formulieren sollte...
Könnt ihr mir dabei vielleicht helfen? Ein kleiner Geistesblitz würde (hoffentlich :wink: ) schon reichen...

Danke schon mal für die schnelle Antwort,
Roman
Andy
User
Beiträge: 196
Registriert: Sonntag 1. Januar 2006, 20:12
Wohnort: aus dem hohen Norden....

Roman hat geschrieben:Hallo,
Öhm, das habe ich wohl irgendwie nicht so gut verstanden in der Doku. :oops:
Aber wsa schreibe ich denn in eine solche Klasse?? Ich habe ehrlich gesagt keine Ahnung, wie ich das formulieren sollte...
Könnt ihr mir dabei vielleicht helfen? Ein kleiner Geistesblitz würde (hoffentlich :wink: ) schon reichen...

Danke schon mal für die schnelle Antwort,
Roman
Von Pymedia hab ich ehrlich gesagt keine Ahnung.

Dein posting verrät mir jedoch, dass Du wohl mit Klassen und/oder Funktionen eher weniger zu tun hattest.

Also, was DatenMetzgerX da gemacht hat, ist folgendes:
Er hat einfach nur eine Klasse für, die mit "def" definierten Funktionen, geschaffen.

onAudioReady und on VideoReady scheinen funktionen von Pymedia zu sein. pass dagegen ist einfach nur eine leere Anweisung. braucht Python aus syntaktischen Gründen. Diese bewirkt also auch nichts. Weil ein zusammenhängender Anweisúngsblock durch Einrückungen definert wird,, ist diese notwendig. Enthält ein Block aber keine Anwesung (von d. Logik her), so muss dennoch die leere Anweisung eingefügt werden, damit der Interpreter eine Einrückung erkennen kann.

Da Du letzteres wahrscheinlich nicht wirklich verstehen wirst, kaufe Dir doch mal ein Buch. Da kann man so was nämlich nachlesen. :mrgreen:

Nein im Ernst: Jeder möchte gerne große Sprünge machen. Sich jedoch an Video-Programmierung ranzumachen, ohne irgendwelche Python-Grundgerüste zu kennen, ist wirklich nicht so dass wahre.

gruss andy
Roman
User
Beiträge: 65
Registriert: Dienstag 14. März 2006, 09:10
Wohnort: Berlin

Hi Andy,
Also ganz so ein Anfaenger bin ich nun nicht... Was DatenMetzgerX (bzw. die Jungs von pymedia :wink: ) gemacht hat, habe ich schon verstanden! 8)

Allerdings wusste ich nicht, dass in pymedia onAudioReady() schon vordefiniert ist... Ich dachte, in der callback Klasse muesste ich noch die frames selbst bauen und solche Sachen, daher meinte ich, dass ich nicht genau wuesste, wie man das machen kann...

Heisst das, dass meine Klasse dann nur diese simplen zwei Funktionen aufruft?? Kann ich mir irgendwie nicht so richtig vorstellen, denn das ist ja dann schon fast zu simpel, aber ich werds wohl mal ausprobieren!

Danke fuer eventuelle weitere Beitraege,
Roman
Andy
User
Beiträge: 196
Registriert: Sonntag 1. Januar 2006, 20:12
Wohnort: aus dem hohen Norden....

Roman hat geschrieben:
... Ich dachte, in der callback Klasse muesste ich noch die frames selbst bauen ....
Heisst das, dass meine Klasse dann nur diese simplen zwei Funktionen aufruft?? Kann ich mir irgendwie nicht so richtig vorstellen, denn das ist ja dann schon fast zu simpel, aber ich werds wohl mal ausprobieren!

Danke fuer eventuelle weitere Beitraege,
Roman
Tach Roman,

Achso - die Frames hab ich auch grad erst entdeckt. Obwohl ich jetz kein Bock hab, mir Pymedia runterzuladen, glaube ich, dass dieses "Player = pymedia.player()" schon so einiges mit sich bringt... :? Also brauch Player sozusagen nur so´ne Klasse, die sagt, was das callback sein soll. :wink:

Es gibt´s doch auch so Python-Anweisungen, womit man z. B. feststellen kann, was sich hinter pymedia.player() versteckt, oder? Also nur falls Dich das wirklich interessiert kannste das ja mal nachschauen.
Benutzeravatar
Michael Schneider
User
Beiträge: 569
Registriert: Samstag 8. April 2006, 12:31
Wohnort: Brandenburg

Hi Roman,

ich habe auch nur mal kurz in PyMedia reingeschnuppert, um mir meinen eigenen MP3-Spieler zu basteln.

Aber generell: der Name "Callback" spricht schon Bände. Eine Klasse mit zwei Methoden wird erfragt, die vom Player aufgerufen werden können. Du bekommst per "Rückruf" die Gelegenheit, die abzuspielenden Framedaten zu manipulieren (wenn Du Spaß am Programmieren von Filtern oder, was geläufiger ist, Statistiken hast). Wenn Du mit den Daten nichts machen willst, mach Dir nicht mehr Ärger als nötig. :-D

Grüße,
der Michel
Diese Nachricht zersört sich in 5 Sekunden selbst ...
Antworten