Archived:Como gravar uma chamada, em PySymbian
Aquivado: Este artigo foi arquivado, pois o conteúdo não é mais considerado relevante para se criar soluções comerciais atuais. Se você achar que este artigo ainda é importante, inclua o template {{ForArchiveReview|escreva a sua justificativa}}.
Acredita-se que este artigo ainda seja válido no contexto original (quando ele foi escrito)
Acredita-se que este artigo ainda seja válido no contexto original (quando ele foi escrito)
Dados do artigo
Artigo
Tradução:
Originado de How to record a call using PySymbian
Por maiconherverton
Última alteração feita por hamishwillee
em 07 May 2013
O código abaixo é usado para gravar uma chamada utilizando PySymbian.
import appuifw
import e32
from key_codes import *
import audio
s = audio.Sound.open('C:\\data\\h.amr') # Repositório onde o áudio será armazenado temporariamente
class Keyboard(object):
def __init__(self,onevent=lambda:None):
self._keyboard_state={}
self._downs={}
self._onevent=onevent
def handle_event(self,event):
if event['type'] == appuifw.EEventKeyDown:
code=event['scancode']
if not self.is_down(code):
self._downs[code]=self._downs.get(code,0)+1
self._keyboard_state[code]=1
elif event['type'] == appuifw.EEventKeyUp:
self._keyboard_state[event['scancode']]=0
self._onevent()
def is_down(self,scancode):
return self._keyboard_state.get(scancode,0)
def pressed(self,scancode):
if self._downs.get(scancode,0):
self._downs[scancode]-=1
return True
return False
keyboard=Keyboard()
def quit():
global running, s
running=0
s.close()
appuifw.app.set_exit()
running=1
appuifw.app.screen='normal'
canvas=appuifw.Canvas(event_callback=keyboard.handle_event, redraw_callback=None)
appuifw.app.body=canvas
appuifw.app.exit_key_handler=quit
while running:
if keyboard.pressed(EScancode2):
s.play()
appuifw.note(u"Tocando", "info") #Toca
if keyboard.pressed(EScancode3):
s.stop() # Stop recording
appuifw.note(u"Parado", "info") #Para
if keyboard.pressed(EScancode1):
appuifw.note(u"Gravando", "info")
s.record() # Inicia a gravação
e32.ao_yield()


(no comments yet)