-
Feedback: Script zur "Nutzung der ZDF-Mediathek"
@moroli
SUPER Dein Script zur "Nutzung der ZDF-Mediathek" funktioniert 1a :top:
Sehr gute Beschreibung inkl. Anleitung zur Vorgehensweise.
So macht es Spaß... und führt zum Erfolg. :p
Es hat ca. 10 min gebraucht, es in dem TouchStudio einzugeben und zum Laufen zu bekommen.
(...ich hatte einen kleinen Flüchtigkeitsfehler ;) )
Mit einer kleinen Modifizierung und einer zusätzlichen Eingabeaufforderung läßt sich dieses Script auch für "alle anderen" websites nutzen. :cool:
(...keine "statische" Angabe der ZDF-Mediathek-website im Script, sondern analog zum Video auch Abfrage der gewünschten site vom Benutzer)
Schade ist nur, daß es bisher keine Möglichkeit des Exports/Imports solcher Scripte gibt und wir sie von diesen postings komplett neu eintppen/eintappen müssen.
Cool wäre eine Möglichkeit, diese Scripte in ener anderen Form weitergeben resp. veröffentlichen zu können.
-
AW: Feedback: Script zur "Nutzung der ZDF-Mediathek"
Zitat:
Zitat von
jrahe
Es hat ca. 10 min gebraucht, es in dem TouchStudio einzugeben und zum Laufen zu bekommen.
(...ich hatte einen kleinen Flüchtigkeitsfehler ;) )
Bei mir hat es etwas länger gedauert bis alles lief... Bis ich drauf gekommen bin die "sleeps" einzubauen (zuvor hing entweder das Video beim Anzeigen auf der wall bei "Buffering" fest oder es kam die Meldung ich solle sicherstellen, dass nicht mit zune verbunden - passiert jetzt nur noch gelegentlich). Hier scheinen (Speicher-)Prozesse parallel zu laufen und Zugriffe dadurch ggf. ins Nirvana zu führen.
Zitat:
Zitat von
jrahe
Schade ist nur, daß es bisher keine Möglichkeit des Exports/Imports solcher Scripte gibt und wir sie von diesen postings komplett neu eintppen/eintappen müssen
Das fehlt definitiv (noch?). Mehr API-Zugriffe werden wohl auch noch kommen (mit dem nächsten Update werden viele davon ja auch erst für Apps freigegeben). Und da es künftig ja auch die Möglichkeit mehrerer Tiles für 1 App geben soll, wird hoffentlich auch ein Link (Tile) zu einem Script / einer Action möglich...
-
AW: Microsoft Research TouchStudio
Jup, mit Mango wird das erst richtig toll :)
-
Hab dein neues Script noch nich probiert, aber wenn das klappt wär das ja ziemlich genial. In jedm Fall schonmal ein fettes DANKE dafür. Weiter so......
-
AW: Microsoft Research TouchStudio
Weiss jemand ob es mittlerweile eine Dokumentation gibt?
btw: kann mir jemand sagen, was "Panorama" bewirkt?
-
AW: Microsoft Research TouchStudio
Zitat:
Zitat von
Hillbj
Weiss jemand ob es mittlerweile eine Dokumentation gibt?
Also ich komme anhand der API-(sehr)Kurz-Beschreibung und der Beispiele und ausprobieren bisher auch so ganz gut zu Recht.
Zitat:
Zitat von
Hillbj
btw: kann mir jemand sagen, was "Panorama" bewirkt?
Was meinst du mit "Panorama"? Ich habe nur "Picture -> IsPanorama" gefunden?! Das sagt dir, ob das Bild Hoch- oder Querformat hat.
-
AW: Microsoft Research TouchStudio
Zitat:
Zitat von
moroli
Diese
Funktion macht 2 Bilder, die dann "überlagert" angezeigt (und gespeichert) werden:
Code:
action TwoPics() : Nothing
senses -> snap camera picture
pic := media -> create picture(senses -> camera picture -> width, senses -> camera picture -> height)
pic -> blend(senses -> camera picture, 0, 0, 1)
senses -> snap camera picture
a := 50 / 100
pic -> blend(senses -> camera picture, 0, 0, a)
phone -> sleep(1)
pic -> post to wall
phone -> sleep(1)
pic -> save to library
Hat diesen Code von mir schonmal jemand ausprobiert? Also grundsätzlich funktioniert er ja, sonst hätte ich ihn nicht gepostet, aber das Script stürzt immer öfter ab. Manchmal sogar beim Erstellen des 2. Fotos (wenn ich zu lange warte bis ich auf den Auslöser drücke). Habe auch schon mit diversen "Sleeps" herumexperimentiert, aber es scheint reiner Zufall zu sein, ob es funktioniert...
-
AW: Microsoft Research TouchStudio
hat bei mir einwandfrei funktioniert! Coole Sache echt! ;)
-
...bin gerade am erneuten Testen = gleicher Fehler => nach Aufnahme des zweiten Fotos Beenden des TouchStudios.
=> Camera Cache wird scheinbar nicht geleert bzw. wird nicht mit einem zweiten Foto überschrieben. Es bleibt die erste Aufnahme im Speicher.
=> diesen Fehler hatte ich auch schon vor dem NoDo-Update sowie auch jetzt mit Update.
=> merkwürdig, daß es bei Lorenz Wolf so problemlos läuft. Was ist dort anders?
Gruß Jörg
Mit der kostenlosen
PocketPC.ch App von meinem 7 Mozart T8698 aus geschrieben.
-
...jedes erneute Aufrufen der Camera-Funktion scheint zum Fehler/Beenden zu führen. Unabhängig, ob in der gleichen "action" oder in ausgelagerten "sub-actions". Auch das Speichern in unterschiedlichen Variablen oder das Sichern im Ordner "Gespeicherte Bilder" ändert nichts.
Mit der kostenlosen
PocketPC.ch App von meinem 7 Mozart T8698 aus geschrieben.
-
...das Abspeichern im Ordner "Gespeicherte Bilder" scheitert am Abruf des "zuletzt gespeicherten Bildes" anhand des Index (Count - 1), da der Index bei mehreren Aufnahmen nicht jedesmal neu gezählt wird, sondern konstant gespeichert bleibt. Erst ein Beenden und Neustarten des TouchStudio "resettet" den Index und läßt ihn über "count" neu ermitteln.
Mit der kostenlosen
PocketPC.ch App von meinem 7 Mozart T8698 aus geschrieben.
-
Zum Problem im script "überlagerte Bilder"
Hallo moroli,
...mit Deinem Script habe auch ich permanente Abbrüche.
(siehe dazu auch die Anmerkungen am Ende dieses Posts sowie in den vorherigen)
Das Erstellen zweier Fotos und abspeichern als 50%/50% überblendetes Foto funktioniert bei mir mit folgendem Script:
=> starten mit der action "TwoPics" erstellt und speichert das Ergebnis
=> für ein zweites überlagertes Foto muß TouchStudio beendet und erneut gestartet werden.
Code:
action TwoPics() : Nothing
PicSave()
-----------------------------
PicSave()
-----------------------------
pic := media -> pictures -> get(media -> pictures -> count-2)
pic -> blend(media -> pictures -> get(media -> pictures -> count-1),0,0,0,1/2)
phone -> sleep(1)
pic -> save to library
Code:
action PicSave() : Nothing
senses -> snap camera picture
-----------------------------
pic := senses -> camera picture -> save to library
Anmerkungen:
phone -> sleep(1) ist ein oft erforderlicher Zwischenschritt:
a) ohne diesen Befehl => Abbruch mit Fehlermeldung
b) mit diesem Befehl, aber (1/2) sek statt (1) sek => Ergebnis unvollständig gerendert abgespeichert
(...in dem obigen Beispiel waren im abgespeicherten Endergebnis ca. 2 Drittel "überblendet" und 1 Drittel noch nicht bearbeitet, sah lustig aus... :p )
Der Index, welcher über die Funktion "count" ermittelt wird, bleibt nach dem ersten Aufruf konstant bestehen.
Weder das Beenden und Neustart der "action" noch des "scriptes" noch der Umgebung "start coding" setzen diesen zurück.
=> Nur das Beenden des gesamten TouchStudio und dessen Neustart ermöglichen ein reset des Index
Auch bei mehrfachem Aufruf der Funktion "senses -> snap camera picture" bleibt nur die erste Aufnahme im "Kamera-Cache".
Einzig das Auslagern in eine externe "action" und das Abspeichern im Ordner "Gespeicherte Bilder" hat bei mir zu dem gewünschten Erfolg geführt.
Der mehrfache Aufruf dieser externen "action" mußte direkt erfolgen.
Das Einbinden in eine "do ... while"-Schleife führte erneut zum Beenden des Programms.
Der mehrfache Aufruf zum Erstellen zweier überblendeter Fotos funktioniert z.B. wie folgt:
Code:
action TwoPics() : Nothing
PicSave()
-----------------------------
PicSave()
-----------------------------
PicSave()
-----------------------------
PicSave()
-----------------------------
pic := media -> pictures -> get(media -> pictures -> count-4)
pic -> blend(media -> pictures -> get(media -> pictures -> count-3),0,0,0,1/2)
phone -> sleep(1)
pic -> save to library
pic1 := media -> pictures -> get(media -> pictures -> count-2)
pic1 -> blend(media -> pictures -> get(media -> pictures -> count-1),0,0,0,1/2)
phone -> sleep(1)
pic1 -> save to library
Gruß und weiterhin viel Spaß beim scripting
Jörg
-
AW: Zum Problem im script "überlagerte Bilder"
Zitat:
Zitat von
jrahe
Hallo moroli,
...mit Deinem Script habe auch ich permanente Abbrüche.
(siehe dazu auch die Anmerkungen am Ende dieses Posts sowie in den vorherigen)
Bei mir funktioniert es ja manchmal; man erkennt auch schön, dass die Überlagerung dann korrekt funktioniert. Ich habe oftmals getestet, und zwar mal "schnell", mal "langsam" fotografiert (und bestätigt). Ich hätte gedacht, es stürzt eher ab, wenn man zu schnell ist (deshalb benötigt man ja auch oft die Sleeps), aber musste feststellen, dass es abstürzt, wenn ich zu langsam beim fotografieren bin; oft sogar schon beim fokussieren beim 2. Foto, also eigentlich gar nicht direkt innerhalb des Skriptes (ist ja eine eigenständige "Foto-App" die da gestartet wird ?!). Scheint wohl irgendwas mit Speicherauslastung o.ä. zu tun zu haben.
Hast das ganze aber toll umgesetzt; vor allem, dass "media -> pictures -> count" nicht erhöht wird, ist gut zu wissen. Sowas kann einem schnell den letzten Nerv kosten, wenn man nicht gleich drauf kommt.
-
AW: Zum Problem im script "überlagerte Bilder"
Ich konnte meine "Erfolgsquote" noch etwas erhöhen durch ein "sleep(1)" vor dem zweiten "snap camera picture":
Code:
action TwoPics() : Nothing
senses -> snap camera picture
pic := media -> create picture(senses -> camera picture -> width, senses -> camera picture -> height)
pic -> blend(senses -> camera picture, 0, 0, 1)
phone -> sleep(1)
senses -> snap camera picture
a := 50 / 100
pic -> blend(senses -> camera picture, 0, 0, a)
phone -> sleep(1)
pic -> post to wall
phone -> sleep(1)
pic -> save to library
-
AW: Zum Problem im script "überlagerte Bilder"
...der mehrfache Aufruf der Kamerafunktion direkt nacheinander in einer Schleife funktioniert auch:
Code:
action TwoPicsTwo() : Nothing
for 0 < i < 4 do
PicSave()
-----------------------------
pic := media -> pictures -> get(media -> pictures -> count-4)
pic -> blend(media -> pictures -> get(media -> pictures -> count-3),0,0,0,1/2)
phone -> sleep(1)
pic -> save to library
pic1 := media -> pictures -> get(media -> pictures -> count-2)
pic1 -> blend(media -> pictures -> get(media -> pictures -> count-1),0,0,0,1/2)
phone -> sleep(1)
pic1 -> save to library
...dagegen funktioniert nicht das versetzte mehrfache Aufrufen der Kamerafunktion:
Code:
action TwoPics() : Nothing
PicSave()
-----------------------------
PicSave()
-----------------------------
pic := media -> pictures -> get(media -> pictures -> count-2)
pic -> blend(media -> pictures -> get(media -> pictures -> count-1),0,0,0,1/2)
phone -> sleep(1)
pic -> save to library
PicSave()
-----------------------------
PicSave()
-----------------------------
pic1 := media -> pictures -> get(media -> pictures -> count-4)
pic1 -> blend(media -> pictures -> get(media -> pictures -> count-3),0,0,0,1/2)
phone -> sleep(1)
pic1 -> save to library
=> hier werden die beiden ersten Fotos aufgenommen, abgespeichert, überlagert, Ergebnis abgespeichert, dann die Kamerafunktion erneut aufgerufen und nach Erstellen des Fotos wird das Programm beendet (-> siehe bisheriger Fehler).
P.S. in diesem Beispiel könnte auch der Index zu einem Fehler führen, da "count" ja nicht aktualisiert wird, bei dem zweiten Durchgang aber 4 resp. 3 abgezogen werden. Wenn dies die ersten Aufnahmen im Ordner "Gespeicherte Bilder" wären, würde dies zu einem Index von -2 resp. -1 führen.
Soweit kommt das Programm aber gar nicht, da schon beim Kameraaufruf abgebrochen wird.
-
AW: Zum Problem im script "überlagerte Bilder"
Ein einfacher Test, um 2 Fotos zu erstellen:
Code:
action test() : Nothing
senses -> snap camera picture
senses -> camera picture -> post to wall
phone -> sleep(1)
senses -> snap camera picture
senses -> camera picture -> post to wall
Wenn man schnell ist gehts meistens, fotografiert man zu langsam stürzt es ab. Wobei die Erfolgsquote mit "sleep(1)" besser ist als ohne "sleep". (Also wie in meinem letzten Post schon geschrieben.)
-
AW: Zum Problem im script "überlagerte Bilder"
Hallo moroli,
Zitat:
Scheint wohl irgendwas mit Speicherauslastung o.ä. zu tun zu haben.
Vielleicht könnte auch hier eine der Ursachen zu suchen sein, weshalb es bei Lorenz Wolf so problemlos funktionierte. Die Kamera des HTC 7 Trophy hat z.B. 5 Megapixel und damit eventuell eine geringere Speicherbelastung als bei meinem Mozart mit 8 Megapixel.
Zitat:
aber musste feststellen, dass es abstürzt, wenn ich zu langsam beim fotografieren bin; oft sogar schon beim fokussieren beim 2. Foto
Wieviel wird beim fokussieren eigentlich gecacht??? Also schnell fotografieren, damit möglichst wenig gecacht werden muß???
-
AW: Zum Problem im script "überlagerte Bilder"
Zitat:
Zitat von
jrahe
Die Kamera des HTC 7 Trophy hat z.B. 5 Megapixel und damit eventuell eine geringere Speicherbelastung als bei meinem Mozart mit 8 Megapixel.
Das könnte durchaus sein. Bei mir sind es 5 Megapixel (LG Optimus 7) und es klappt immerhin manchmal.
Zitat:
Zitat von
jrahe
Wieviel wird beim fokussieren eigentlich gecacht??? Also schnell fotografieren, damit möglichst wenig gecacht werden muß???
Also irgendeinen Zusammenhang scheint es wohl zu geben: Cache oder komplexe Berechnungen oder ?
Hast du mal probiert schnell zu fotografieren (bei mir hilft es ja meinstens) ?
-
AW: Einfaches script zum Kamera testen
....sorry, bin schon ein alter Sack (werde dies Jahr 50)
Daher mußte ich erst einmal die Rolling Stones Live auf 3Sat sehen:
Zitat:
Shine a Light
Dokumentarfilm von Martin Scorsese, USA 2008
Mit Mick Jagger, Keith Richards, Christina Aguilera
und Charlie Watts
Länge: 117 Minuten
Absolut Genial !!!
Vielleicht kann ich morgen weiter testen.... :-)
================================
EDIT NEXT DAY => Ergebnis Kameratest: FEHLER
Ich habe Dein script zum Testen der Kamerafunktion eingegeben und erhalte reproduzierbar immer das gleiche Ergebnis: Programmabsturz.
Im Detail sieht es folgendermaßen aus:
"action" wird gestartet, Kamera startet, ich nehme erstes Foto auf, tap auf Button "übernehmen", Foto wird auf der "wall" angezeigt, Kamera startet erneut, ich nehme zweites Foto auf, tap auf Button "übernehmen" => in diesem Moment bricht das Programm ab, TouchStudio beendet sich selbst und ich lande dort, von wo aus das TouchStudio gestartet wurde (im Startmenu des Handys, genauer gesagt in der app-Liste bzw. auf dem Startbildschirm, wenn es von einer tile aus gestartet wurde).
=> mit Deinem script erhalte ich nie ein zweites Bild auf der "wall" angezeigt. Auch nicht, wenn als letzte Zeile noch eine "phone -> sleep(1)" hinzugefügt und/oder die Werte für sleep erhöht werden. Auch unabhängig davon, wie schnell ich fotografiere. Selbst nach Minuten des Wartens kann ich noch zuverlässig das zweite Foto aufnehmen. Erst bei dem tap auf den Button "übernehmen" stürzt dann das Programm ab. Und dies geschieht wie gesagt reproduzierbar mit immer dem gleichen Verlauf/Ergebnis.
Gruß Jörg
-
AW: Einfaches script zum Kamera testen
Hallo moroli,
...wenn ich in Deinem script zum Kamera testen anstelle von "-> post to wall" das Speichern mit "-> save to library" setze, kann ich das script ohne Fehler oder Abbrüche ausführen.
Gruß Jörg
-
AW: Einfaches script zum Kamera testen
Zitat:
Zitat von
jrahe
Hallo moroli,
...wenn ich in Deinem script zum Kamera testen anstelle von "-> post to wall" das Speichern mit "-> save to library" setze, kann ich das script ohne Fehler oder Abbrüche ausführen.
Hallo Jörg,
Das scheint wohl wirklich ein Problem mit Speicherauslastung in Kombination mit Hardware-Ausstattung/Treiber-Version zu sein.
Bei dir sind es ja 8 Megapixel; beim "PostToWall" wird das erste Bild wohl im Speicher gehalten und das zweite 8-MP-Bild wird dann wohl zu viel. Durch "SaveToLibrary" ist die Speicherauslastung dann geringer. Demnach sollte es aber bei dir funktionieren, wenn du die Auflösung verringerst ?!
Bei mir (5 Megapixel) scheint wohl eher der Treiber der Kamera beim (langen) Fokussieren den Speicher zu beanspruchen. Es bringt hier auch nichts, die Auflösung zu verstellen, sonden nur schnell sein bringt Erfolg.
Gruß Olli
-
UPDATE TouchStudio 1.1
...auch wenn es Gefahr läuft, in der allgemeinen Hysterie um NoDo-Updates unterzugehen:
Es gibt ein neues Update auf 1.1 beta für das TouchStudio....! :cool:
Darin enthalten sind u.a.:
- Möglichkeit von Screenshots des Codes (zur Dokumentation resp. Austausch)
- Script-Tiles individualisieren (Farbe, Nummernausgabe und eigenen Icons) (ähnlich Live-Tiles)
- Fehlerbehebung bei Floatingpoint (= Dezimaltrennzeichen)
- weitere Bibliotheken für Geo-/GPS-Daten
- Navigation auf Bing-Maps
- "speech to text", Texterkennung in Fotos und Übersetzungen (bei Datenverbindung)
- grafische Ausgabe in Tabellen (x-y)
- Zugriff auf den Lagensensor
- ... und weiteres mehr
Mitgelieferte Beispielscripte:
- Balancespiel
- 2D-Wasserwaage
- Radioscanner, weiterschalten per Schütteln
- Aufnahmeort eines Fotos mit diesem Foto auf Karte anzeigen
- Weg aktuelle Position zum aufgenommenen Foto auf Karte
- ... und weiteres mehr
Beispiel Möglichkeiten:
- eigene playlisten (z.B. als Favoriten gekennzeichnete) per "schütteln" vor-/zurückspielen
- Aufnahme von Radiosendungen
- Erstellen von Fotografien mit eingeblendeten Geo-Daten
- ... und weiteres mehr
Viel Spaß und Gruß
Jörg
-
Liste der Anhänge anzeigen (Anzahl: 4)
Beispiel zu TouchStudio 1.1
Hallo,
...insbesondere die neue Funktion, direkt Screenshot zu speichern (auch von den Code-Seiten) erleichtert den Austausch über das Forum ganz ungemein. (...und die eigene Dokumentation)
=> wir müssen nicht mehr den gesamten Code abtippen... :p
Als Beispiel ein kleines Script, welches die Anzahl der auf dem Handy gespeicherten Songs in einer Grafik sortiert nach der Dauer in Minuten darstellt.
Bei diesem Testlauf hatte ich 605 Songs auf dem Handy, wobei der längste 19 Minuten dauerte. (...genau 18 Minuten und ...Sekunden, gezählt wird aber nach vollen Minuten).
Da für jede Minute die "Zählschleife" aufgerufen wird, mußte sie bei mir 19mal durchlaufen werden. Das Ganze hat ca. 10 Minuten gedauert. => also nicht wundern!
Der Code läßt sich sicher noch optimieren, ist aber in dieser Form besser nachvollziehbar.
Aufbau der drei actions:
1.) "MapSongsMinuten" als Hauptaction zu starten erstellt zunächst eine "map" (= Tabellengrafik). Anschließend wird über die action "SongsMaxDuration" die Dauer des längsten Titels in aufgerundeten Minuten ermittelt. (...in meinm Beispiel also 19). Dann wird in einer Schleife, die entsprechend der ermittelten Minuten oft durchlaufen wird, die Anzahl der Songs ermittelt, die eine Laufzeit von diesen Minuten haben. Also im ersten Durchlauf Anzahl der Songs von bis zu einer Minute, im zweiten Durchlauf Anzahl der Songs mit einer Dauer von mindestens einer und bis zu zwei Minuten, ...
2.) "SongsMaxDuration" zählt die auf dem Gerät gespeicherten Songs und ermittelt in einer Schleife jeweils deren Laufzeit. Wenn diese bei einem Song größer als der aktuell gespeicherte Wert "maxduration" ist, wird dieser entsprechend ersetzt. Am Ende wird der Wert "maxduration" in Sekunden zurückgegeben.
3.) "CountSongsBySec" erhält beim Aufruf die Minuten in Sekunden und zählt in einer Schleife alle die Songs, die mindestens so lange und maximal bis zur nächsten Minute dauern. Die Anzahl de so ermittelten Songs wird zurückgegeben.
In der Grafik "Grafik Anzahl Songs nach Dauer in Minuten.jpg" ist die tabellarische Darstellung zu sehen. Zuvor hat das Script zu jeder Minuten noch den Zahlenwert ausgegeben. Zu sehen sind hier also noch die Werte für 16 / 17 / 18 / 19 Minuten.
Viel Spaß
Jörg
Anhang 67678 Anhang 67680 Anhang 67679 Anhang 67681
-
Änderungen / Neuerungen in TouchStudio 1.1
ACHTUNG:
...einige der auf den vorhergehenden Seiten beschriebenen Scripte sind so nicht immer lauffähig, da es einige Änderungen an den APIs gegeben hat.
Hier eine Aufstellung der geänderten Befehle:
old API => new API
engine->assert => time->fail if not
engine->stop => time->stop
phone->sleep => time->sleep
phone->now => time->now
json->get field => json->field
json->get boolean => json->boolean
json->get number => json->number
json->get string => json->string
senses->snap camera picture => senses->take camera picture
senses->has camerea picture => senses->has taken camera picture
senses->camera picture => senses->taken camera picture
web->deep zoom link => web->link deep zoom
web->hyperlink => web->link url
web->image link => web->link image
Die neuen APIs im Überblick:
senses->acceleration quick/smooth/stable: Access to accelerometer
locations->*: Access to GPS/geo-coordinates
maps->*: Access to Bing maps
languages->*: Access to Bing- and Hawaii-based translation services
web->search *: Searching the web with Bing
tile->*: Configuration of script tile properties
math->create number map: charting functionality
Ausführliche Quelle: Microsoft Research Team Release Note
Gruß Jörg
-
Dokumentation zu Microsoft Research TouchStudio
Eine erste Doku ist auf der Seite des Microsoft Research Teams zum Download bereitgestellt.
(Englisch, PDF, ca. 1 MB)
http://research.microsoft.com/pubs/1...TR-2011-49.pdf
Hierbei handelt es sich um die allgemeine Beschreibung und den Aufbau von "TouchStudio".
Es sit keine Auflistung der Befehle/APIs. Diese findet sich weiterhin im Programm auf der Hilfe-Seite.
Gruß Jörg
-
Liste der Anhänge anzeigen (Anzahl: 1)
AW: Microsoft Research TouchStudio
@moroli
Hallo Olli,
...auch mit der neuen beta-Version erhalte ich bei dem adaptierten "Kamera-Test-Script" den Fehler, daß nach der ersten erstellten und auf der "wall" abgebildeten Aufnahme die zweite Aufnahme gestartet und übernommen wird, anschließend aber immer noch nur die erste Aufnahme auf der "wall" ist, das Programm kurz pausiert und sich selbst (TouchStudio) beendet.
Auch ein zwischenzeitliches Aufnehmen eines Screenshots ist nicht möglich.
Testscript "test-1" hier im Anhang:
Anhang 67687
-
AW: Microsoft Research TouchStudio
Zitat:
Zitat von
jrahe
...auch mit der neuen beta-Version erhalte ich bei dem adaptierten "Kamera-Test-Script" den Fehler, daß nach der ersten erstellten und auf der "wall" abgebildeten Aufnahme die zweite Aufnahme gestartet und übernommen wird, anschließend aber immer noch nur die erste Aufnahme auf der "wall" ist, das Programm kurz pausiert und sich selbst (TouchStudio) beendet.
Als ich gesehen habe, dass sich in diesem Bereich die Befehle etwas geändert haben, hatte ich auch schon die Hoffnung, dass nun alles besser wird... Aber im Gegenteil: Es ist mir zwar bisher nicht während(!) der 2. Aufnahme abgestürzt, aber danach habe ich das gleiche Problem wie du. Es hat nur 1 oder 2 mal funktioniert zwei Bilder zu machen und untereinander auf der Wall anzuzeigen, ansonsten immer Absturz vor Anzeigen des 2. Bildes.
-
AW: Microsoft Research TouchStudio
Folgendes aus der "Doku" (s.o.) finde ich sehr interessant:
Zitat:
5 Prototype Implementation Limitations
Our currently available prototype does not yet support the following features:
- Attaching of actions to events; in the initial prototype, the only way to run an action is via an explicit "run" button.
- Persistent UI elements
- Synchronization of data with the cloud, or in fact any global program state
- Functional query statements
We plan to implement these features in future releases.
Zur Cloud ("Shared state in the cloud") siehe auch Punkt 3.3 der Doku.
Also wenn das alles so kommt, wird das die beste App der Welt! :D
-
AW: Microsoft Research TouchStudio
Zitat:
Zitat von
moroli
Also wenn das alles so kommt, wird das die beste App der Welt!
...ja, es steckt viel Potential in dieser Anwendung... :cool:
Noch werden die Möglichkeiten ausgebremst durch die Einschränkungen bei den APIs.
Aktuell können wir ettliche Programme, wie sie im Marketplace zu finden sind, per Script nachbilden.
- Nachteil: immer ohne GUI
- Nachteil: langsamere Ausführung
- Vorteil: eigene Konfiguration
- Mögliche Schnittstellen: annähernd gleich
Beispiel 1:
Diese "Standardprogramme" wie Stoppuhr u.a. lassen sich relativ einfach umsetzen. Nur können wir keine nette Benutzeroberfläche gestalten, brauchen zum Starten der scripte ein paar "taps" mehr und unsere Scripte laufen naturgemäß deutlich langsamer als kompilierter Code.
Dagegen haben wir den Vorteil, daß wir unsere Scripte an spezielle Erfordernisse anpassen können. Ich kenne zum Beispiel keine Stoppuhr, die die gemessenen Zeiten archiviert/speichert (was wir mit unseren Scripten können).
Ich kenne auch kein "Zeitprogramm", welches zum Messen der Akku-Performance in festgelegten Zeitabständen einen timestamp speichert und welches bis zum eigenständigen Ausschalten des Gerätes durchlaufen lassen wird.
Beispiel 2:
Die Möglichkeiten, mit der eingebauten Kamera oder per Anwendung aus dem Marketplace, Fotos aufzunehmen sind sicherlich "schneller" und "bedienungsfreundlicher".
Ich kenne aber kein Programm, welches beim Fotografieren die erstellte Aufnahme automatisch mit eingeblendeten Geo-Positionsdaten speichert (...oder Copyright-Hinweis oder ...)
Mit der Freigabe weiterer Schnittstellen beim "Mango-Update" werden die Möglichkeiten im "TouchStudio" sicherlich noch drastisch ansteigen. :D
-
Liste der Anhänge anzeigen (Anzahl: 6)
Test GPS-Sensor mit "TouchStudio 1.1 beta"
...mit dem Update auf "1.1 beta" u.a. sind weitere "Sensoren" verfügbar.
Als Test habe ich den GPS-Sensor genutzt, um per Script den Höhenverlauf während einer Autofahrt grafisch darzustellen und zu speichern.
Hierbei hat sich herausgestellt, daß gerade die Höhenangaben nicht immer zuverlässig vom Sensor abgefragt werden (können).
Die Angaben für Länge und Breite dagegen lassen sich recht verläßlich abfragen.
Bei den Höhenwerten können mitten im Meßverlauf Nullen (= keine Meßwerte) erscheinen, um nach mehr oder weniger kurzer Zeit wieder Werte zu liefern.
Dieses läßt sich ein wenig mit der "Pausenzeit" nach Aufruf des GPS-Sensors beeinflussen.
Entscheidend ist vermutlich, daß das "TouchStudio" keinen permanenten Datenstrom vom GPS-Empfänger erhält (wie wahrscheinlich die anderen GPS Programme), sondern für jede Abfrage sich selbst zunächst "einfriert", dann den GPS-Sensor aufruft, Daten ermittelt, GPS-Sensor wieder verläßt und sich selbst wieder "aufweckt".
Als Ergebnis zwei Grafiken:
a.) mit einer Pause von 4 sec (= Variable "v"), dazu gehört => script-1a.jpg
Die Werte wurden alle 10 sec ermittelt (= Variable "w") während einer Fahrt.
Hier ist in der Grafik im Bereich zwischen 70 und 90 sec und zwischen 160 und 230 sec ein Wegbleiben der Höhendaten zu erkennen.
Anhang 67898
b.) mit einer Pause von 7 sec (= Variable "v"), dazu gehört => script-1b.jpg
Die Werte wurden alle 15 sec ermittelt (= Variable "w")
Hier wurde die Pausenzeit erhöht, das Ergebnis sind durchgehende Höhendaten.
Allerdings fand diese Aufzeichnung im stehenden Fahrzeug statt... soviel zur Genauigkeit der GPS-Daten....
Anhang 67896
Bei einem erneuten Test mit einer Pausenzeit von 7 sec wurden wieder Aussetzer bei den Daten aufgezeichnet. => hilft also auch noch nicht wirklich
Manchmal erhält das Script beim Starten auch gar keine GPS-Daten. Ich habe noch keine nachvollziehbare Abhängigkeit gefunden.
Auch das vorherige Starten eines anderen GPS-Programms (z.B. "Distant") zum "vorwärmen" des GPS-Sensors bringt keine Besserung.
Wie gesagt, dies betrifft vor allem die Höhendaten. Länge und Breite lassen sich recht zuverlässig abfragen.
Im Anhang die drei scripte:
"main.Hoehen.Grafik()" => script-1a.jpg (=> script-1b.jpg)
"get.Hoehe.Meter(sec):Number" => script-2.jpg
"get.Zeit.Diff(timestamp):Number" => script-3.jpg
Anhang 67899 Anhang 67894 Anhang 67895 Anhang 67897
-
Liste der Anhänge anzeigen (Anzahl: 8)
Microsoft Research TouchStudio beta 1.1 "GPS-Tool"
Hier als Anwendungsbeispiel ein kleines GPS-Tool, welches modular aufgebaut ist.
Der Nutzer kann also die einzelnen Elemente auf dem Screen nach seinen Bedürfnissen anordnen bzw. entfernen/hinzufügen.
Diese Layoutelemente werden in Echtzeit aktualisiert. Dies ersetzt zwar noch keine GUI, ermöglicht mir aber, zum Beispiel ein Tool wie "distant" nachzubilden, aber mit größeren und für mich besser lesbaren Zahlen.
Ich könnte GPS-Punkte setzen, mir die Distanz und Richtung anzeigen lassen und dorthin navigieren. (...natürlich alles bezogen auf "Luftlinie", keine Straßennavigation, keine Sprachausgabe, o.ä.)
Die Farben für die Layout-Elemente und deren Schriftfarbe/-größe lassen sich zentral vom Hauptscript einstellen.
Variablen:
cb => color background
cf => color font
z1 => Zeichengröße Variante 1
z2 => Zeichengröße Variante 2
sec => Pausenzeit, die der GPS-Sensor erhält, um seine Daten zu empfangen
time => Gesamtzeit für das Intervall der Messung / Anzeige
Reihenfolge der Elemente:
In der "if i=0 then"-Schleife werden die genutzten Elemente und ihre Reihenfolge für den ersten Aufruf festgelegt.
Als Ergebnis erscheint z.B. folgende Anzeige:
Element 1: Startdatum und Startzeit, Anzeige bleibt fix
Element 2: aktuelle Uhrzeit, wird laufend aktualisiert (im Intervall von Variable "time")
Element 3: Zeit der Messung und Distanz zum Startpunkt (= Luftlinie) dynamisch zw. (m) und (km)
Element 4: Geodaten aktuelle Position und rechts Höhe (m) und Geschwindigkeit (km/h)
Anhang 68065
Je nach eingestelltem Design alternative Darstellung:
Anhang 68059
Das dazugehörige Haupt-Script ist:
Anhang 68064
Die weiteren benötigten Scripte sind:
Anhang 68058 Anhang 68063 Anhang 68060 Anhang 68061 Anhang 68062
-
Liste der Anhänge anzeigen (Anzahl: 3)
Microsoft Research TouchStudio beta 1.1 "Einfache Uhrl"
Mit dem Uhrzeit-Modul aus dem vorhergehenden Beispiel läßt sich auch sehr schnell eine einfache Uhr erstellen, die in Echtzeit läuft.
In dem neuen Haupt-Script für die Uhr muß nur das Modul mit den entsprechenden Parametern aufgerufen und eingebunden werden.
Das Ergebnis könnte so aussehen:
Anhang 68066
Das dazugehörende Haupt-Script wäre das folgende:
Anhang 68067
Als weiteres Script wird das schon vorhandene Modul benutzt:
Anhang 68068
-
AW: Microsoft Research TouchStudio
Okey wow, dein GPS-Tool ist der Hammer!
-
AW: Microsoft Research TouchStudio
Danke !
...aber leider ist es nur so genau, wie die Daten vom GPS-Sensor.
Außerdem läßt sich die Verarbeitung in einer Script-Umgebung mit permanent neuem Aufruf des GPS-Sensors nicht so flüssig darstellen, wie mit kompilierten Code (wie z.B. bei "distant").
Es zeigt aber sehr schön das Potential, welches in diesem "TouchStudio" steckt.
Und wenn dann noch die weiteren APIs freigegeben werden.... :-)
In Bezug auf das GPS-Tool:
Probleme gibt es auf meinem Gerät (HTS Mozart NoDo 7.0.7392) noch mit den Daten für "Höhe" und "Geschwindigkeit". Da habe ich oft Aussetzer in den gelieferten GPS-Daten.
Recht zuverlässig dagegen sind "lat" und "long" zur Positionsbestimmung und zur Distanzberechnung zu vorgegebenen Standpunkten. Hier habe ich einen direkten Vergleich mit den Werten von "distant" vorgenommen und zufriedenstellende Ergebnisse erzielt.
Da wir noch keine wirklichen Daten speichern können, mußte ich auf das "Schreiben von Text auf Bildern" zurückgreifen. Das heißt, ich schreibe meine Daten auf blanke, schwarze Kästen (= meine Layout-Elemente).
Den Unterfunktionen werden die dazu notwendigen Daten übergeben und diese lierfern dann Bilder (ähnlich wie "Kacheln") wieder zurück. Da wir Bilder nicht nur mit "post to wall" anzeigen lassen können, sondern diese auch mit "update to wall" aktualisieren können, haben wir quasi "Live-Tiles".
Durch den modularen Aufbau können auch andere Programme (Haupt-Scripte) auf diese Layout-Elemente zugreifen, wie ich dies im Beispiel der "einfachen Uhr" dargestellt habe.
Wichtig ist allerdings, daß alle "actions" in einem "script" liegen, damit ein gemeinsamer Zugriff ermöglicht wird.
Gruß Jörg
-
Liste der Anhänge anzeigen (Anzahl: 3)
Microsoft Research TouchStudio beta 1.1 "Modulare Erweiterbarkeitl"
Als Beispiel für die modulare Erweiterbarkeit hier ein Layout-Element, welches den aktuell gespielten Song inklusive Cover anzeigt und sich z.B. bei dem GPS-Tool mit einbinden läßt.
Da viele Songtitel/Gruppennamen länger sind, habe ich eine dritte Variable "z3" für eine dritte alternative Zeichengröße integriert.
Der angezeigte Song wird in dem eingestellten Intervall aktualisiert dargestellt.
EDIT:
Wir haben aber keine "Steuerungsmöglichkeiten", da wir beim "TouchStudio" nicht auf "Events" wie "tap" o.ä. reagieren können.
(...das einzige wäre hier, eine permanente Abfragebox, die der user mit "weiter" oder "abbrechen" bestätigen müsste)
Stimmt nicht so ganz. Wir können beispielsweise auf den Lagensensor zur Steuerung zugreifen. Ich habe dies in dem nachfolgenden Post beim Script "Player" eingesetzt.
Da die Steuerung aber vom Haupt-Script ausgehen muß (...die Layout-Elemente dienen nur der aktualisierten Darstellung von Inhalten), wird das Musik Modul hier nur zur Info über den aktuell laufenden Titel eingesetzt.
EDIT 2:
In dem hier vorgestellten Script fehlt noch die Fehlerbehandlung, falls der Player selbst beim Start des Scriptes noch nicht gestartet ist. Wir erhalten dann eine Fehlermeldung und das Script stoppt.
Dies läßt sich durch eine einfache Abfrage, ob der Player schon aktiv ist, erweitern.
So könnte das Ergebnis aussehen:
(hier sind die Farben mit cb=accent und cf=white gesetzt worden)
Anhang 68075
Das erweiterte Haupt-Script
Hinzugekommen sind:
a) Variable z3
b) das Bild für das Layout-Element Musik (= p5)
Anhang 68078
Das zusätzlich erforderliche Script für das Layout-Element "Musik":
Anhang 68076
-
Liste der Anhänge anzeigen (Anzahl: 4)
Microsoft Research TouchStudio beta 1.1 "Music-Player mit sensorischer Steuerung"
So, hier nun das Beispiel, wie eine Steuerung über den Lagensensor umgesetzt werden kann:
Das Haupt-Script "Player" greift dabei wieder auf das schon bestehende Layout-Element "Musik" zu. (s.a. vorhergehender Post)
In dem Hauptscript findet jetzt auch die Steuerung des Players statt:
a) kurzer Dreh des Handys nach rechts => weiter zum nächsten Titel
b) kurzer Dreh des Handys nach links => Shuffle ein/aus
c) kuzer Kipp des Handys nach vorne => Pause ein/aus
Der Player spielt die Titel der aktuellen Playlist.
Falls der Player beim Start des Programms noch nicht aktiv sein sollte, wird er mit einem zufälligen Titel gestartet.
BTW:
Das "S ->" vor dem Titel ist der Indikator für "Shuffle ein"
Das Ergebnis sieht dann z.B. so aus:
(links "Shuffle aus" und rechts "Shuffle ein")
Anhang 68110 Anhang 68109
Das zugehörige Haupt-Script:
Anhang 68108
Das zusätzlich erforderliche Layout-Element "Musik" wurde schon im vorangegeangenen Post vorgestellt:
Anhang 68112
-
AW: Microsoft Research TouchStudio
Ist ja cool, wusste nicht, dass das geht :)
Danke!
-
AW: Microsoft Research TouchStudio
...im Rahmen der zugänglichen APIs geht schon eine ganze Menge ;-)
Das geniale ist, daß hier im "TouchStudio" der user (fast) alles (Layout, Schriftgröße, Inhalte, ...) individuell gestalten kann.
Der Nachteil ist nur die verlangsamte Ausführung im Vergleich zum kompilierten Code einer App aus dem Market Place.
Gruß Jörg
-
Liste der Anhänge anzeigen (Anzahl: 18)
Microsoft Research TouchStudio beta 1.1 "SPORT App mit mp3-Player"
Hallo AEG,
...auch wenn wir nicht die von Dir gewünschte GUI direkt umsetzen können, so läßt sich doch schon mit den bisherigen Möglichkeiten einiges realisieren.
Beispiel:
Keine der Sport-Apps, die ich aus dem Market-Place kenne, sind in der Lage, den Musik-Player zu steuern.
Wenn ich also gerne eine Sport-App hätte, die:
- die gelaufene Zeit beim Joggen aufnimmt
- die Pausen berücksichtigt
- die mit großen Ziffern und hohem Kontrast auch für mich gut ablesbar ist
- den Musik-Player steuert (Lied vor, Pause, ...)
=> so kann ich diese mit "TouchStudio" umsetzen. :p
Funktionen:
a) kurzer Dreh des Handys nach rechts => weiter zum nächsten Titel
b) kurzer Dreh des Handys nach links => Player Pause ein/aus
c) kuzer Kipp des Handys nach vorne => Stoppuhr Start/Pause
Beim Start des Programms wird der Musik-Player gestartet mit der aktuellen Playlist oder, falls er noch nicht aktiv ist, mit einem Zufallstitel.
Zunächst werden 4 Layout-Elemente angezeigt:
1.) Die Startzeit, wann das Programm gestartet wurde (fixe Anzeige)
2.) Die aktuelle Uhrzeit (wird in Echtzeit aktualisiert)
3.) Die bisherige gelaufene Zeit, zunächst alles auf 0h 0m 0s
(wird nach Start der Stoppuhr in Echtzeit aktualisiert)
4.) Der aktuelle Titel (wird in Echtzeit aktualisiert)
Indikatoren beim Titel: "P=" Pause ein und "S->" Shuffle-Modus ein
Anhang 68171
Sobald die Stoppuhr gestartet wurde, beginnt die Zeit in dem 3. Element zu zählen und die Hintergrundfarbe des 2. und 3. Elements ändert sich (bei mir von schwarz in rot), um den aktiven Zustand zu signalisieren.
Anhang 68170
Sobald die Stoppuhr das erste Mal gestoppt wird, bleibt die Zeit in dem 3. Element stehen und die Hintergrundfarbe ändert sich wieder zurück (in schwarz), um den inaktiven Zustand zu signalisieren.
Anhang 68168
Bei einem erneuten Start der Stoppuhr zählt Element3 wieder weiter, Hintergrundfarbe ändert sich wieder (in rot) und es erscheinen zwei weitere Elemente:
5.) Die gelaufene Zeit zum Zeitpunkt der letzten Pause (fix bis zur nächsten Pause)
6.) Die Anzahl der bisherigen Pausen
Anhang 68156
Ein weiterer Stopp der Stoppuhr bringt wiederum die Zeit im 3. Element zum Stehen. Hintergrundfarben werden wieder auf "inaktiv" (schwarz) gesetzt. Das 5. Element zeigt weiterhin die gelaufene Zeit zum Zeitpunkt der letzten Pause an.
Anhang 68158
Ein erneutes Starten der Stoppuhr aktualisiert dann die gelaufene Zeit in dem 5. Element und die Anzahl der Pausen wird entsprechend erhöht.
Anhang 68161
...und so weiter... bis der Lauf beendet durch Stoppen der Stoppuhr wird.
Anhang 68174
==========================================================
Jederzeit läßt sich der Musik-Player durch einen Linksdreh stummschalten bzw. wieder aktivieren. (Indikator "P=" vor dem Titel).
Durch einen Rechtsdreh kann auf den jeweils nächsten Titel weitergeschaltet werden.
Anhang 68165 Anhang 68169 Anhang 68160 Anhang 68163
==========================================================
Das dazugegörige Haupt-Script:
Anhang 68164
...zwei neue Layout-Elemente ("Counter" und "Titel") und ein Script zum Starten des Players:
Anhang 68172 Anhang 68162 Anhang 68173
...und die schon (meist) bekannten Layout-Elemente ("Start", "Musik" und "Time")
Anhang 68166 Anhang 68159 Anhang 68167
==========================================================
Das Ganze ließe sich natürlich noch erweitern.
Als Beispiel das Abspeichern aller Zeiten inklusive der Zwischenzeiten wären nur ca. 3-4 Befehle. (...bei jedem Stoppen der Stoppuhr als Bild speichern)
VIEL POTENTIAL im "TouchStudio" :cool:
Gruß Jörg
-
AW: Microsoft Research TouchStudio