Android-Implementierung hinzugefügt
Ursprüngliche Implementierung für Android hinzugefügt.
This commit is contained in:
parent
1d272caebe
commit
555cf013ae
35 changed files with 1681 additions and 0 deletions
178
source/Android/multimedia/AudioPlayer.py
Normal file
178
source/Android/multimedia/AudioPlayer.py
Normal file
|
@ -0,0 +1,178 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
import time
|
||||
import random
|
||||
import velamentum.dateien.Datei
|
||||
from velamentum.multimedia.Player import Player
|
||||
from velamentum.android import *
|
||||
|
||||
class AudioPlayer(Player):
|
||||
"""Die Klasse Player dient der Wiedergabe von Multimediadaten aus einer
|
||||
Datei.
|
||||
|
||||
Attribute:
|
||||
--- von 'Player' geerbte ---
|
||||
datei (Datei): Die Datei, deren Inhalt wiedergegeben werden soll.
|
||||
dauer (Zahl): Gesamtdauer der Datei in Millisekunden.
|
||||
position (Zahl): Die aktuelle Position der Wiedergabe in Millisekunden.
|
||||
wiederholen (Wahrheitswert): Gibt an, ob die Wiedergabe am Ende von
|
||||
vorne beginnen soll.
|
||||
"""
|
||||
|
||||
def __init__(self, pDatei, pSofortWiedergeben=False):
|
||||
"""Konstruktor. Initialisiert den Player.
|
||||
|
||||
Parameter:
|
||||
pDatei (Datei): Datei, die wiedergegeben werden soll.
|
||||
[optional] pSofortWiedergeben (Wahrheitswert): Soll die Datei direkt
|
||||
nach der Initialisierung wiedergegeben werden?
|
||||
"""
|
||||
self.datei = pDatei
|
||||
# Eindeutige ID festlegen zur Verwaltung verschiedener gleichzeitig
|
||||
# wiederzugebender Streams.
|
||||
self._id = "%s%04d" % (pDatei.nenneName(), random.randint(0,8191))
|
||||
|
||||
if self.datei.istVorhanden():
|
||||
androide.mediaPlay(self.datei.nennePfad(), self._id,
|
||||
pSofortWiedergeben)
|
||||
self.dauer = int(androide.mediaPlayInfo(self._id)[1]["duration"])
|
||||
else:
|
||||
print("Fehler. Datei %s nicht gefunden." % pDatei.nennePfad())
|
||||
|
||||
def __del__(self):
|
||||
"""Destruktor. Stellt sicher, dass die Wiedergabe beim Löschen des
|
||||
Objekts beendet wird.
|
||||
|
||||
Parameter:
|
||||
--- keine ---
|
||||
"""
|
||||
androide.mediaPlayClose(self._id)
|
||||
|
||||
def nenneDauer(self):
|
||||
"""Anfrage. Gibt die Gesamtdauer der Datei zurück.
|
||||
|
||||
Parameter:
|
||||
--- keine ---
|
||||
|
||||
Rückgabe (Zahl): Gesamtdauer der Datei in Millisekunden.
|
||||
"""
|
||||
return self.dauer
|
||||
|
||||
def nennePosition(self):
|
||||
"""Anfrage. Gibt die aktuelle Position der Wiedergabe zurück.
|
||||
|
||||
Parameter:
|
||||
--- keine ---
|
||||
|
||||
Rückgabe (Zahl): Aktuelle Position der Wiedergabe in Millisekunden.
|
||||
"""
|
||||
return int(androide.mediaPlayInfo(self._id)[1]["position"])
|
||||
|
||||
def setzePosition(self, pPosition):
|
||||
"""Auftrag. Legt die aktuelle Position der Wiedergabe fest.
|
||||
|
||||
Parameter:
|
||||
pPosition (Zahl): Neue Position in Millisekunden.
|
||||
"""
|
||||
# Position auf gültigen Bereich (0 - dauer) beschränken.
|
||||
if pPosition > self.dauer:
|
||||
pPosition = self.dauer
|
||||
elif pPosition < 0:
|
||||
pPosition = 0
|
||||
|
||||
androide.mediaPlaySeek(pPosition, self._id)
|
||||
|
||||
|
||||
def nenneDatei(self):
|
||||
"""Anfrage. Gibt die Datei zurück, die wiedergegeben werden soll.
|
||||
|
||||
Parameter:
|
||||
--- keine ---
|
||||
|
||||
Rückgabe (Datei): Datei, die wiedergegeben werden soll.
|
||||
"""
|
||||
return self.datei
|
||||
|
||||
def setzeDatei(self, pDatei):
|
||||
"""Auftrag. Legt die Datei fest, die wiedergegeben werden soll.
|
||||
|
||||
Parameter:
|
||||
pDatei (Datei): Datei, die wiedergegeben werden soll.
|
||||
"""
|
||||
Player.setzeDatei(self, pDatei)
|
||||
|
||||
if pDatei.istVorhanden():
|
||||
androide.mediaPlay(self.datei.nennePfad(), self._id, False)
|
||||
self.dauer = int(androide.mediaPlayInfo(self._id)[1]["duration"])
|
||||
else:
|
||||
print("Fehler. Datei %s nicht gefunden." % pDatei.nennePfad())
|
||||
|
||||
def nenneWiederholen(self):
|
||||
"""Anfrage. Gibt zurück, ob die Wiedergabe am Ende wieder von vorne
|
||||
beginnen soll.
|
||||
|
||||
Parameter:
|
||||
--- keine ---
|
||||
|
||||
Rückgabe (Wahrheitswert): Soll die Datei wiederholt
|
||||
wiedergegeben werden?
|
||||
"""
|
||||
return androide.mediaPlayInfo(self._id)[1]["looping"]
|
||||
|
||||
def setzeWiederholen(self, pWiederholen):
|
||||
"""Auftrag. Legt fest, ob die Wiedergabe am Ende wieder von vorne
|
||||
beginnen soll.
|
||||
|
||||
Parameter:
|
||||
pWiederholen (Wahrheitswert): Soll die Datei wiederholt
|
||||
wiedergegeben werden?
|
||||
"""
|
||||
return androide.mediaPlaySetLooping(self._id, pWiederholen)
|
||||
|
||||
def gibtWieder(self):
|
||||
"""Anfrage. Gibt an, ob die Datei gerade wiedergegeben wird.
|
||||
|
||||
Parameter:
|
||||
--- keine ---
|
||||
|
||||
Rückgabe (Wahrheitswert): True falls gerade eine Wiedergabe läuft,
|
||||
False sonst.
|
||||
"""
|
||||
return androide.mediaIsPlaying(self._id)["result"]
|
||||
|
||||
def wiedergeben(self):
|
||||
"""Auftrag. Startet die Wiedergabe der Multimediadaten.
|
||||
|
||||
Parameter
|
||||
--- keine ---
|
||||
"""
|
||||
androide.mediaPlayStart(self._id)
|
||||
|
||||
def pausieren(self):
|
||||
"""Auftrag. Pausiert die Wiedergabe der Multimediadaten. Die Wiedergabe
|
||||
kann mit 'wiedergeben' fortgesetzt werden.
|
||||
|
||||
Parameter
|
||||
--- keine ---
|
||||
"""
|
||||
androide.mediaPlayPause(self._id)
|
||||
|
||||
def stoppen(self):
|
||||
"""Auftrag. Stoppt die Wiedergabe der Multimediadaten. (Wie 'pausieren',
|
||||
Wiedergabe kann jedoch nicht fortgesetzt werden, sondern beginnt dann
|
||||
von vorne.
|
||||
|
||||
Parameter
|
||||
--- keine ---
|
||||
"""
|
||||
androide.mediaPlayPause(self._id)
|
||||
self.setzePosition(0)
|
||||
|
||||
# Attribute (verdeckte Getter und Setter)
|
||||
datei = property(nenneDatei, setzeDatei, doc="Die Datei, deren Inhalt " \
|
||||
"wiedergegeben werden soll.")
|
||||
dauer = property(nenneDauer, doc="Die Gesamtdauer der Datei in Millisekunden.")
|
||||
position = property(nennePosition, setzePosition, doc = "Die aktuelle "\
|
||||
"Position der Wiedergabe.")
|
||||
wiederholen = property(nenneWiederholen, setzeWiederholen, doc="Gibt an, "\
|
||||
"ob die Wiedergabe am Ende wieder von vorne beginnen soll.")
|
||||
|
58
source/Android/multimedia/AudioRecorder.py
Normal file
58
source/Android/multimedia/AudioRecorder.py
Normal file
|
@ -0,0 +1,58 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
import velamentum.dateien.Datei
|
||||
from velamentum.multimedia.Recorder import Recorder
|
||||
from velamentum.ui.dialoge.Dialog import Dialog
|
||||
from velamentum.android import *
|
||||
|
||||
class AudioRecorder(Recorder):
|
||||
"""Die Klasse AudioRecorder dient der Aufnahme von Tondaten in eine Datei.
|
||||
|
||||
Attribute:
|
||||
--- von 'Recorder' geerbte ---
|
||||
"""
|
||||
|
||||
def __init__(self, pDatei=velamentum.dateien.Datei.Datei("/sdcard/aufnahme.m4a")):
|
||||
"""Konstruktor. Initialisiert den AudioRecorder.
|
||||
|
||||
Parameter:
|
||||
[optional] datei (Datei): Datei, in der die Aufnahme gespeichert
|
||||
werden soll [Standardwert: Datei mit Pfad '/scard/aufnahme.m4a'].
|
||||
"""
|
||||
Recorder.__init__(self, pDatei)
|
||||
|
||||
def aufnehmen(self):
|
||||
"""Auftrag. Startet die Aufnahme der Multimediadaten.
|
||||
|
||||
HINWEIS: Die angegebene Datei wird überschrieben.
|
||||
|
||||
Parameter
|
||||
--- keine ---
|
||||
"""
|
||||
Recorder.aufnehmen(self)
|
||||
androide.recorderStartMicrophone(self.datei.nennePfad())
|
||||
|
||||
def stoppen(self):
|
||||
"""Auftrag. Stoppt die Aufnahme der Multimediadaten.
|
||||
|
||||
Parameter
|
||||
--- keine ---
|
||||
"""
|
||||
Recorder.stoppen(self)
|
||||
androide.recorderStop()
|
||||
|
||||
def aufnehmenInteraktiv(self):
|
||||
"""Auftrag. Startet eine interaktive Aufnahme. Der Benutzer erhält die
|
||||
Möglichkeit die Aufnahme interaktiv zu starten und zu stoppen. Dazu wird
|
||||
in der Regel auf die jeweilige Recorder-Applikation zurückgegriffen.
|
||||
|
||||
HINWEIS: Die angegebene Datei wird überschrieben.
|
||||
|
||||
Parameter:
|
||||
--- keine ---
|
||||
"""
|
||||
self.aufnehmen()
|
||||
dialog = Dialog("Audioaufnahme", "Aufnahme gestartet. Zum Beenden" \
|
||||
"'Ok' drücken.")
|
||||
dialog.zeige()
|
||||
self.stoppen()
|
||||
|
51
source/Android/multimedia/BildRecorder.py
Normal file
51
source/Android/multimedia/BildRecorder.py
Normal file
|
@ -0,0 +1,51 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
import velamentum.dateien.Datei
|
||||
from velamentum.multimedia.Recorder import Recorder
|
||||
from velamentum.android import *
|
||||
|
||||
class BildRecorder(Recorder):
|
||||
"""Die Klasse BildRecorder dient der Aufnahme von Bilddaten in eine Datei.
|
||||
|
||||
Attribute:
|
||||
--- von 'Recorder' geerbte ---
|
||||
"""
|
||||
|
||||
def __init__(self, pDatei=velamentum.dateien.Datei.Datei("/sdcard/aufnahme.jpg")):
|
||||
"""Konstruktor. Initialisiert den BildRecorder.
|
||||
|
||||
Parameter:
|
||||
[optional] pDatei (Datei): Datei, in der die Aufnahme gespeichert
|
||||
werden soll [Standardwert: Datei mit Pfad '/scard/aufnahme.jpg'].
|
||||
"""
|
||||
Recorder.__init__(self, pDatei)
|
||||
|
||||
def aufnehmen(self):
|
||||
"""Auftrag. Macht ein Foto und speichert es in der angegebenen Datei.
|
||||
|
||||
HINWEIS: Die angegebene Datei wird überschrieben.
|
||||
|
||||
Parameter
|
||||
--- keine ---
|
||||
"""
|
||||
androide.cameraCapturePicture(self.datei.nennePfad())
|
||||
|
||||
def stoppen(self):
|
||||
"""Auftrag. Dummy. Für Fotos nutzlos.
|
||||
|
||||
Parameter
|
||||
--- keine ---
|
||||
"""
|
||||
pass
|
||||
|
||||
def aufnehmenInteraktiv(self):
|
||||
"""Auftrag. Startet eine interaktive Aufnahme. Der Benutzer erhält die
|
||||
Möglichkeit die Aufnahme interaktiv zu starten und zu stoppen. Dazu wird
|
||||
auf die Standard-Kamera-App zurückgegriffen.
|
||||
|
||||
HINWEIS: Die angegebene Datei wird überschrieben.
|
||||
|
||||
Parameter:
|
||||
--- keine ---
|
||||
"""
|
||||
androide.cameraInteractiveCapturePicture(self.datei.nennePfad())
|
||||
|
91
source/Android/multimedia/JNIAudioRecorder.py
Normal file
91
source/Android/multimedia/JNIAudioRecorder.py
Normal file
|
@ -0,0 +1,91 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
import velamentum.dateien.Datei
|
||||
from velamentum.multimedia.Recorder import Recorder
|
||||
from velamentum.ui.dialoge.Dialog import Dialog
|
||||
|
||||
from jnius import autoclass
|
||||
|
||||
from velamentum.android import *
|
||||
|
||||
class JNIAudioRecorder(Recorder):
|
||||
"""Die Klasse AudioRecorder dient der Aufnahme von Tondaten in eine Datei.
|
||||
|
||||
BUG: Die Nutzung aus der QPython-Konsole funktioniert derzeit nicht.
|
||||
Der Aufruf aus einer Skriptdatei funktioniert hingegen problemlos.
|
||||
|
||||
Attribute:
|
||||
--- von 'Recorder' geerbte ---
|
||||
"""
|
||||
|
||||
def __init__(self, pDatei=velamentum.dateien.Datei.Datei("/sdcard/aufnahme.m4a")):
|
||||
"""Konstruktor. Initialisiert den JNIAudioRecorder.
|
||||
|
||||
Parameter:
|
||||
[optional] pDatei (Datei): Datei, in der die Aufnahme gespeichert
|
||||
werden soll [Standardwert: Datei mit Pfad
|
||||
'/sdcard/aufnahme.m4a'].
|
||||
"""
|
||||
Recorder.__init__(self, pDatei)
|
||||
|
||||
# Recorder initialisieren
|
||||
MediaRecorder = autoclass('android.media.MediaRecorder')
|
||||
AudioSource = autoclass('android.media.MediaRecorder$AudioSource')
|
||||
OutputFormat = autoclass('android.media.MediaRecorder$OutputFormat')
|
||||
AudioEncoder = autoclass('android.media.MediaRecorder$AudioEncoder')
|
||||
self.__mRecorder = MediaRecorder()
|
||||
self.__mRecorder.setOutputFile(pDatei.nennePfad()) # Pfad der Datei
|
||||
self.__mRecorder.setAudioSource(AudioSource.MIC) # Aufnahme vom Mikrofon
|
||||
self.__mRecorder.setAudioChannels(1) # Mono
|
||||
self.__mRecorder.setAudioEncodingBitRate(131072) # 128 kbps
|
||||
self.__mRecorder.setAudioSamplingRate(48000) # 48 kHz
|
||||
# ACHTUNG: Reihenfolge ist relevant! Erst Format, dann Encoder!
|
||||
self.__mRecorder.setOutputFormat(OutputFormat.MPEG_4) # MP4-Container
|
||||
self.__mRecorder.setAudioEncoder(AudioEncoder.AAC) # AAC-Format
|
||||
|
||||
def __del__(self):
|
||||
"""Destruktor. Notwendig zur Freigabe des MediaRecorders beim Löschen
|
||||
des Python-Objekts.
|
||||
|
||||
Parameter:
|
||||
--- keine ---
|
||||
"""
|
||||
self.__mRecorder.release()
|
||||
|
||||
def aufnehmen(self):
|
||||
"""Auftrag. Startet die Aufnahme der Multimediadaten.
|
||||
|
||||
HINWEIS: Die angegebene Datei wird überschrieben.
|
||||
|
||||
Parameter
|
||||
--- keine ---
|
||||
"""
|
||||
Recorder.aufnehmen(self)
|
||||
self.__mRecorder.setOutputFile(self.datei.nennePfad())
|
||||
self.__mRecorder.prepare()
|
||||
self.__mRecorder.start()
|
||||
|
||||
def stoppen(self):
|
||||
"""Auftrag. Stoppt die Aufnahme der Multimediadaten.
|
||||
|
||||
Parameter
|
||||
--- keine ---
|
||||
"""
|
||||
Recorder.stoppen(self)
|
||||
self.__mRecorder.stop()
|
||||
|
||||
def aufnehmenInteraktiv(self):
|
||||
"""Auftrag. Startet eine interaktive Aufnahme. Der Benutzer erhält die
|
||||
Möglichkeit die Aufnahme interaktiv zu starten und zu stoppen. Dazu wird
|
||||
in der Regel auf die jeweilige Recorder-Applikation zurückgegriffen.
|
||||
|
||||
HINWEIS: Die angegebene Datei wird überschrieben.
|
||||
|
||||
Parameter:
|
||||
--- keine ---
|
||||
"""
|
||||
self.aufnehmen()
|
||||
dialog = Dialog("Audioaufnahme", "Aufnahme gestartet. Zum Beenden" \
|
||||
"'Ok' drücken.")
|
||||
dialog.zeige()
|
||||
self.stoppen()
|
||||
|
144
source/Android/multimedia/Player.py
Normal file
144
source/Android/multimedia/Player.py
Normal file
|
@ -0,0 +1,144 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
import time
|
||||
import velamentum.dateien.Datei
|
||||
from velamentum.android import *
|
||||
|
||||
class Player(object):
|
||||
"""Die Klasse Player dient der Wiedergabe von Multimediadaten aus einer
|
||||
Datei.
|
||||
|
||||
Attribute:
|
||||
datei (Datei): Die Datei, deren Inhalt wiedergegeben werden soll.
|
||||
dauer (Zahl): Gesamtdauer der Datei in Millisekunden.
|
||||
position (Zahl): Die aktuelle Position der Wiedergabe in Millisekunden.
|
||||
wiederholen (Wahrheitswert): Gibt an, ob die Wiedergabe am Ende von
|
||||
vorne beginnen soll.
|
||||
"""
|
||||
|
||||
def __init__(self, pDatei):
|
||||
"""Konstruktor. Initialisiert den Player.
|
||||
|
||||
Parameter:
|
||||
pDatei (Datei): Datei, die wiedergegeben werden soll.
|
||||
"""
|
||||
self.datei = pDatei
|
||||
# Eindeutige ID festlegen zur Verwaltung verschiedener gleichzeitig
|
||||
# wiederzugebender Streams.
|
||||
self._id = "%s%04d" % (pDatei.nenneName(), randint(0,4095))
|
||||
|
||||
def nenneDatei(self):
|
||||
"""Anfrage. Gibt die Datei zurück, die wiedergegeben werden soll.
|
||||
|
||||
Parameter:
|
||||
--- keine ---
|
||||
|
||||
Rückgabe (Datei): Datei, die wiedergegeben werden soll.
|
||||
"""
|
||||
return self.datei
|
||||
|
||||
def setzeDatei(self):
|
||||
"""Anfrage. Gibt die Datei zurück, die wiedergegeben werden soll.
|
||||
|
||||
Parameter:
|
||||
--- keine ---
|
||||
|
||||
Rückgabe (Datei): Datei, die wiedergegeben werden soll.
|
||||
"""
|
||||
return self.datei
|
||||
|
||||
def nenneWiederholen(self):
|
||||
"""Anfrage. Gibt zurück, ob die Wiedergabe am Ende wieder von vorne
|
||||
beginnen soll.
|
||||
|
||||
Parameter:
|
||||
--- keine ---
|
||||
|
||||
Rückgabe (Wahrheitswert): Soll die Datei wiederholt
|
||||
wiedergegeben werden?
|
||||
"""
|
||||
return False
|
||||
|
||||
def setzeWiederholen(self, pWiederholen):
|
||||
"""Auftrag. Legt fest, ob die Wiedergabe am Ende wieder von vorne
|
||||
beginnen soll.
|
||||
|
||||
Parameter:
|
||||
pWiederholen (Wahrheitswert): Soll die Datei wiederholt
|
||||
wiedergegeben werden?
|
||||
"""
|
||||
pass
|
||||
|
||||
def nenneDauer(self):
|
||||
"""Anfrage. Gibt die Gesamtdauer der Datei zurück.
|
||||
|
||||
Parameter:
|
||||
--- keine ---
|
||||
|
||||
Rückgabe (Zahl): Gesamtdauer der Datei in Millisekunden.
|
||||
"""
|
||||
return 0
|
||||
|
||||
def nennePosition(self):
|
||||
"""Anfrage. Gibt die aktuelle Position der Wiedergabe zurück.
|
||||
|
||||
Parameter:
|
||||
--- keine ---
|
||||
|
||||
Rückgabe (Zahl): Gesamtdauer der Datei in Millisekunden.
|
||||
"""
|
||||
return 0
|
||||
|
||||
def setzePosition(self, pPosition):
|
||||
"""Auftrag. Legt die aktuelle Position der Wiedergabe fest.
|
||||
|
||||
Parameter:
|
||||
pPosition (Zahl): Neue Position in Millisekunden.
|
||||
"""
|
||||
pass
|
||||
|
||||
def gibtWieder(self):
|
||||
"""Anfrage. Gibt an, ob die Datei gerade wiedergegeben wird.
|
||||
|
||||
Parameter:
|
||||
--- keine ---
|
||||
|
||||
Rückgabe (Wahrheitswert): True falls gerade eine Wiedergabe läuft,
|
||||
False sonst.
|
||||
"""
|
||||
return False
|
||||
|
||||
def wiedergeben(self):
|
||||
"""Auftrag. Startet die Wiedergabe der Multimediadaten.
|
||||
|
||||
Parameter
|
||||
--- keine ---
|
||||
"""
|
||||
pass
|
||||
|
||||
def pausieren(self):
|
||||
"""Auftrag. Pausiert die Wiedergabe der Multimediadaten. Die Wiedergabe
|
||||
kann mit 'wiedergeben' fortgesetzt werden.
|
||||
|
||||
Parameter
|
||||
--- keine ---
|
||||
"""
|
||||
pass
|
||||
|
||||
def stoppen(self):
|
||||
"""Auftrag. Stoppt die Wiedergabe der Multimediadaten.
|
||||
|
||||
Parameter
|
||||
--- keine ---
|
||||
"""
|
||||
pass
|
||||
|
||||
# Attribute (verdeckte Getter und Setter)
|
||||
datei = property(nenneDatei, setzeDatei, doc="Die Datei, deren Inhalt " \
|
||||
"wiedergegeben werden soll.")
|
||||
dauer = property(nenneDauer, doc="Die Gesamtdauer der Datei in Millisekunden.")
|
||||
position = property(nennePosition, setzePosition, doc = "Die aktuelle "\
|
||||
"Position der Wiedergabe.")
|
||||
wiederholen = property(nenneWiederholen, setzeWiederholen, doc="Gibt an, "\
|
||||
"ob die Wiedergabe am Ende wieder von vorne beginnen soll.")
|
||||
|
||||
|
96
source/Android/multimedia/Recorder.py
Normal file
96
source/Android/multimedia/Recorder.py
Normal file
|
@ -0,0 +1,96 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
import time
|
||||
import velamentum.dateien.Datei
|
||||
from velamentum.android import *
|
||||
|
||||
class Recorder(object):
|
||||
"""Die Klasse Recorder dient der Aufnahme von Multimediadaten in eine Datei.
|
||||
|
||||
Attribute:
|
||||
aufnahmeLaeuft (Wahrheitswert): Gibt an, ob gerade eine Aufnahme läuft.
|
||||
datei (Datei): Die Datei, in der die Aufnahme gespeichert werden soll.
|
||||
"""
|
||||
|
||||
def __init__(self, pDatei=velamentum.dateien.Datei.Datei("/sdcard/aufnahme")):
|
||||
"""Konstruktor. Initialisiert den Recorder.
|
||||
|
||||
Parameter:
|
||||
[optional] datei (Datei): Datei, in der die Aufnahme gespeichert
|
||||
werden soll [Standardwert: Datei mit Pfad '/scard/aufnahme'].
|
||||
"""
|
||||
self.aufnahmeLaeuft = False
|
||||
self.datei = pDatei
|
||||
|
||||
def nimmtAuf(self):
|
||||
"""Anfrage. Gibt an, ob gerade eine Aufgabe läuft.
|
||||
|
||||
Parameter:
|
||||
--- keine ---
|
||||
|
||||
Rückgabe (Wahrheitswert): True falls eine Aufnahme läuft, False sonst.
|
||||
"""
|
||||
return self.aufnahmeLaeuft
|
||||
|
||||
def nenneDatei(self):
|
||||
"""Anfrage. Gibt die Datei zurück, in der die Aufnahme gespeichert
|
||||
werden soll.
|
||||
|
||||
Parameter
|
||||
--- keine ---
|
||||
|
||||
Rückgabe (Datei): Datei, in der die Aufnahme gespeichert werden soll.
|
||||
"""
|
||||
return self.datei
|
||||
|
||||
def setzeDatei(self, pDatei):
|
||||
"""Auftrag. Legt die Datei fest, in der die Aufnahme gespeichert
|
||||
werden soll.
|
||||
|
||||
Parameter
|
||||
pDatei (Datei): Datei, in der die Aufnahme gespeichert werden soll.
|
||||
"""
|
||||
self.datei = pDatei
|
||||
|
||||
def aufnehmen(self):
|
||||
"""Auftrag. Startet die Aufnahme der Multimediadaten.
|
||||
|
||||
HINWEIS: Die angegebene Datei wird überschrieben.
|
||||
|
||||
Parameter
|
||||
--- keine ---
|
||||
"""
|
||||
self.aufnahmeLaeuft = True
|
||||
|
||||
def stoppen(self):
|
||||
"""Auftrag. Stoppt die Aufnahme der Multimediadaten.
|
||||
|
||||
Parameter
|
||||
--- keine ---
|
||||
"""
|
||||
self.aufnahmeLaeuft = False
|
||||
|
||||
def aufnehmenAuto(self, pDauer):
|
||||
"""Auftrag. Startet eine Aufnahme mit der in 'pDauer' angegebenen Dauer
|
||||
und beendet die Aufnahme danach automatisch.
|
||||
|
||||
HINWEIS: Die angegebene Datei wird überschrieben.
|
||||
|
||||
Parameter
|
||||
pDauer (Zahl): Dauer der Aufnahme.
|
||||
"""
|
||||
self.aufnehmen()
|
||||
time.sleep(pDauer)
|
||||
self.stoppen()
|
||||
|
||||
def aufnehmenInteraktiv(self):
|
||||
"""Auftrag. Startet eine interaktive Aufnahme. Der Benutzer erhält die
|
||||
Möglichkeit die Aufnahme interaktiv zu starten und zu stoppen. Dazu wird
|
||||
in der Regel auf die jeweilige Recorder-Applikation zurückgegriffen.
|
||||
|
||||
HINWEIS: Die angegebene Datei wird überschrieben.
|
||||
|
||||
Parameter:
|
||||
--- keine ---
|
||||
"""
|
||||
pass
|
||||
|
53
source/Android/multimedia/VideoRecorder.py
Normal file
53
source/Android/multimedia/VideoRecorder.py
Normal file
|
@ -0,0 +1,53 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
import velamentum.dateien.Datei
|
||||
from velamentum.multimedia.Recorder import Recorder
|
||||
from velamentum.android import *
|
||||
|
||||
class VideoRecorder(Recorder):
|
||||
"""Die Klasse VideoRecorder dient der Aufnahme von Videodaten in eine Datei.
|
||||
|
||||
Attribute:
|
||||
--- von 'Recorder' geerbte ---
|
||||
"""
|
||||
|
||||
def __init__(self, pDatei=velamentum.dateien.Datei.Datei("/sdcard/aufnahme.mp4")):
|
||||
"""Konstruktor. Initialisiert den VideoRecorder.
|
||||
|
||||
Parameter:
|
||||
[optional] pDatei (Datei): Datei, in der die Aufnahme gespeichert
|
||||
werden soll [Standardwert: Datei mit Pfad '/scard/aufnahme.m4a'].
|
||||
"""
|
||||
Recorder.__init__(self, pDatei)
|
||||
|
||||
def aufnehmen(self):
|
||||
"""Auftrag. Startet die Aufnahme der Multimediadaten.
|
||||
|
||||
HINWEIS: Die angegebene Datei wird überschrieben.
|
||||
|
||||
Parameter
|
||||
--- keine ---
|
||||
"""
|
||||
Recorder.aufnehmen(self)
|
||||
androide.recorderCaptureVideo(self.datei.nennePfad())
|
||||
|
||||
def stoppen(self):
|
||||
"""Auftrag. Stoppt die Aufnahme der Multimediadaten.
|
||||
|
||||
Parameter
|
||||
--- keine ---
|
||||
"""
|
||||
Recorder.stoppen(self)
|
||||
androide.recorderStop()
|
||||
|
||||
def aufnehmenInteraktiv(self):
|
||||
"""Auftrag. Startet eine interaktive Aufnahme. Der Benutzer erhält die
|
||||
Möglichkeit die Aufnahme interaktiv zu starten und zu stoppen. Dazu wird
|
||||
in der Regel auf die jeweilige Recorder-Applikation zurückgegriffen.
|
||||
|
||||
HINWEIS: Die angegebene Datei wird überschrieben.
|
||||
|
||||
Parameter:
|
||||
--- keine ---
|
||||
"""
|
||||
androide.startInteractiveVideoRecording(self.datei.nennePfad())
|
||||
|
0
source/Android/multimedia/__init__.py
Normal file
0
source/Android/multimedia/__init__.py
Normal file
Loading…
Add table
Add a link
Reference in a new issue