Autore Topic: KitKat ScreenRecorder  (Letto 1969 volte)

Offline CrotaNexus

  • Utente normale
  • ***
  • Post: 156
  • Vuolsi così colà dove si puote ciò che si vuole
  • Respect: +25
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    SimoneDev
  • Sistema operativo:
    Windows 8.1
KitKat ScreenRecorder
« il: 03 Febbraio 2014, 19:28:58 CET »
+1
Ciao a tutti, per necessità tempo fa creammo (assieme ad un mio amico) uno Screen Recorder utilizzando la nuova funzione screenrecord introdotta in Android KitKat 4.4. Nel sviluppare questa funzione abbiamo avuto vari problemi e trovare la soluzione è stato abbastanza difficile. Proprio per questo abbiamo deciso di rendere il progetto Open Source, di modo che chi sta avendo il nostro stesso problema possa risolverlo facilmente. I sorgenti sono disponibili a questo indirizzo: SimoneDeveloper/ScreenRecorder. Per il momento è testato (e funzionante) su Galaxy Nexus, Nexus 4 e Nexus 5. Se qualcuno vuole provarlo su altri dispositivi e farci sapere se funziona ben venga.

L'unico problema che ancora risulta essere irrisolto è quello di impostare il percorso di destinazione dei video dinamicamente e non scrivendo il percorso a mano. Abbiamo provato varie soluzioni, tra le quali:

Codice (Java): [Seleziona]
 String path = Environment.getExternalStorageDirectory()+File.separator+"Folder"+File.separator+"SubFolder"+File.separator
Sebbene sia corretto la registrazione non parte. Se qualche buon'anima ci aiutasse a risolvere sarebbe davvero fantastico.  :)
SimoneDev @ Google Play Store

Offline Angelus84

  • Utente junior
  • **
  • Post: 59
  • Respect: +1
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Next
  • Play Store ID:
    Angelus
  • Sistema operativo:
    Windows 7
Re:KitKat ScreenRecorder
« Risposta #1 il: 17 Aprile 2014, 10:02:12 CEST »
0
il manifest.xml non c'è?
Codice (Java): [Seleziona]
 String filedasalvare=Environment.getExternalStorageDirectory()
                .toString() + "/" + "folder"+"/nomefile_.png";
       file = new File(filedasalvare);
     
« Ultima modifica: 17 Aprile 2014, 10:11:06 CEST da Angelus84 »

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:KitKat ScreenRecorder
« Risposta #2 il: 17 Aprile 2014, 10:56:24 CEST »
0
la tua stringa non è sbagliatissima, ma manca il file e ti conviene usare getAbsolutePath().

File | Android Developers()

Angelus ha messo un modo che può funzionare, ma la "/" non è proprio corretta (più giusto usare File.separator) e il file non è png ma solitamente mp4 o comunque un container video, visto che lo screenrecording di cui parliamo è video e non immagine.

Quindi:
Codice (Java): [Seleziona]
String path = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "Folder" + File.separator + "SubFolder" + File.separator + "Recording_" + System.currentTimeMills() +".mp4"
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline Angelus84

  • Utente junior
  • **
  • Post: 59
  • Respect: +1
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Next
  • Play Store ID:
    Angelus
  • Sistema operativo:
    Windows 7
Re:KitKat ScreenRecorder
« Risposta #3 il: 17 Aprile 2014, 14:14:04 CEST »
0
La stringa che uso funziona (a parte l'estensione del file). Nel manifest ci sono i permessi
Codice (XML): [Seleziona]
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
potrebbe essere questo il problema.

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:KitKat ScreenRecorder
« Risposta #4 il: 17 Aprile 2014, 14:21:33 CEST »
0
La stringa che uso funziona (a parte l'estensione del file). Nel manifest ci sono i permessi
Codice (XML): [Seleziona]
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
potrebbe essere questo il problema.
Si,la stringa che usi funziona, ma cablare nel codice il separatore di path non è buona pratica. Generalmente si usa File.separator perchè chiede al sistema qual è il separatore di default.
Ad ogni modo, va controllato che le cartelle "Folder" e "Subfolder" esistano già
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline CrotaNexus

  • Utente normale
  • ***
  • Post: 156
  • Vuolsi così colà dove si puote ciò che si vuole
  • Respect: +25
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    SimoneDev
  • Sistema operativo:
    Windows 8.1
Re:KitKat ScreenRecorder
« Risposta #5 il: 19 Aprile 2014, 12:48:48 CEST »
0
Il manifest non l'ho caricato ma comunque nel progetto completo di Eclipse c'erano quei permessi. Mi scuso per la pessima qualità del codice in termini di scrittura malorganizzata. E' un progetto che non seguo più da molto tempo e che ho fatto quando ero ancora molto caotico nello scrivere codice, essendo agli inizi.
SimoneDev @ Google Play Store