Assumptions: -No options - the simplest as possible -10 films of 10 minutes each - How to shorten the code to not prescribe 10 times the same? -No red light when recording - how? -Only 2 buttons Rec and Stop -GPS location, time, date and speed must be recorded too.
import gst import time liczba = open('czas').read() while 1: bin = gst.element_factory_make("camerabin") bin.set_property("videoenc", gst.element_factory_make("dspmp4venc")) bin.set_property("videomux", gst.element_factory_make("hantromp4mux")) bin.set_property("audioenc", gst.element_factory_make("nokiaaacenc")) bin.set_state(gst.STATE_PLAYING) bin.set_property("filename", "test.mp4") bin.set_property("mode",1) #starts recording bin.emit("user-start") print "recording" time.sleep(float(liczba)) print "stop" # stops recording bin.emit("user-stop") bin.set_state(gst.STATE_PAUSED) bin.set_state(gst.STATE_NULL) time.sleep(1) bin = gst.element_factory_make("camerabin") bin.set_property("videoenc", gst.element_factory_make("dspmp4venc")) bin.set_property("videomux", gst.element_factory_make("hantromp4mux")) bin.set_property("audioenc", gst.element_factory_make("nokiaaacenc")) bin.set_state(gst.STATE_PLAYING) bin.set_property("filename", "test1.mp4") bin.set_property("mode",1) #starts recording bin.emit("user-start") print "recording" time.sleep(float(liczba)) print "stop" # stops recording bin.emit("user-stop") bin.set_state(gst.STATE_PAUSED) bin.set_state(gst.STATE_NULL)
import location import gobject import time import datetime def on_error(control, error, data): print "location error: %d... quitting" % error data.quit() def on_changed(device, data): if not device: print "no device" return if device.fix: if device.fix[1] & location.GPS_DEVICE_LATLONG_SET: print "[lat = %f, long = %f]" % device.fix[4:6] #data.stop() else: print "no fix 1" else: print "no fix" def on_stop(control, data): print "quitting" data.quit() def start_location(data): data.start() return False def get_speed(device, data): if not device: return if device.fix: if device.fix[1] & location.GPS_DEVICE_SPEED_SET: print "[Speed %s Km/h" % device.fix[11], print "(%s)]"% device.fix[12], #data.stop() def get_time(device, data): if not device: return if device.fix: if device.fix[1] & location.GPS_DEVICE_TIME_SET: #print "[Time %s]" % device.fix[2], #print time.gmtime(1268705044.0) #print time.strftime('%X %x %Z', 1268705044.0) print datetime.datetime.fromtimestamp(device.fix[2]), #data.stop() else: print "no time" #i = 0 loop = gobject.MainLoop() control = location.GPSDControl.get_default() device = location.GPSDevice() control.set_properties(preferred_method=location.METHOD_AGNSS, preferred_interval=location.INTERVAL_1S) control.connect("error-verbose", on_error, loop) device.connect("changed", get_time, control) device.connect("changed", get_speed, control) device.connect("changed", on_changed, control) control.connect("gpsd-stopped", on_stop, loop) gobject.idle_add(start_location, control) loop.run()
# Created: Sun Dec 01 20:24:50 2013 # by: PyQt4 UI code generator 4.9.6 # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore, QtGui try: _fromUtf8 = QtCore.QString.fromUtf8 except AttributeError: def _fromUtf8(s): return s try: _encoding = QtGui.QApplication.UnicodeUTF8 def _translate(context, text, disambig): return QtGui.QApplication.translate(context, text, disambig, _encoding) except AttributeError: def _translate(context, text, disambig): return QtGui.QApplication.translate(context, text, disambig) class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName(_fromUtf8("MainWindow")) MainWindow.resize(800, 480) self.centralwidget = QtGui.QWidget(MainWindow) self.centralwidget.setObjectName(_fromUtf8("centralwidget")) self.btnStop = QtGui.QPushButton(self.centralwidget) self.btnStop.setGeometry(QtCore.QRect(150, 350, 91, 71)) self.btnStop.setObjectName(_fromUtf8("btnStop")) self.btnRec = QtGui.QPushButton(self.centralwidget) self.btnRec.setGeometry(QtCore.QRect(20, 350, 91, 71)) self.btnRec.setObjectName(_fromUtf8("btnRec")) self.dane = QtGui.QLabel(self.centralwidget) self.dane.setGeometry(QtCore.QRect(20, 20, 771, 31)) self.dane.setObjectName(_fromUtf8("dane")) MainWindow.setCentralWidget(self.centralwidget) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): MainWindow.setWindowTitle(_translate("MainWindow", "MaeBox", None)) self.btnStop.setText(_translate("MainWindow", "STOP", None)) self.btnRec.setText(_translate("MainWindow", "REC", None)) self.dane.setText(_translate("MainWindow", "Dane", None))
import sys from PyQt4 import QtGui from window import Ui_MainWindow class Main(QtGui.QMainWindow): def __init__(self): QtGui.QMainWindow.__init__(self) self.ui = Ui_MainWindow() self.ui.setupUi(self) self.ui.btnRec.clicked.connect(self.btnRec_Clicked) self.ui.btnStop.clicked.connect(self.btnStop_Clicked) def btnRec_Clicked(self): self.ui.dane.setText("DANE GPS, GODZINA I DATA oraz START NAGRYWANIA") def btnStop_Clicked(self): self.ui.dane.setText("") if __name__ == '__main__': app = QtGui.QApplication(sys.argv) window = Main() window.show() sys.exit(app.exec_())