08-07-2014 03:54 PM
It has dawned on me that creating a screencast and including it in an app would be an excellent way to help users learn how to use an app -- what features are there, ways of accomplishing things, etc.
To do that, though, one would need to be able to record a screencast.
Have others figured out how to do this? Presumably there should be some way to do it, although perhaps no apps exist for such a thing. (if not, that's sad)
Another thought I had would be to record the screencast on the PC using the simulator and crop it appropriately?
Solved! Go to Solution.
08-08-2014 10:04 AM
The closest thing to that I am aware of is the share screen feature in BBM when video chatting with someone so you can troubleshoot or teach them how to use their device. I don't belive it can be recorded though and its supposed to censor out text input
I belive it would be impossible to create an app that does this given the current permission/sandbox setup for security reasons.
It should be possible to do this for your own apps, by reading the screen to a buffer and then saving it as video (Complex Core C++ code). It would have to be implemented on an app by app basis, but the method should remain the same for each application once designed.
Essentially it would be similar to this just with video instead of an image
08-08-2014 01:40 PM
You're probably right... although I am a bit surprised to hear that it's likely impossible unless within the app itself. But maybe that is the case. (which would also explain the lack of apps to do screencasting recording) Pity.
In any event, doing it on the PC with standard screencasting software and then cropping it to the simulator's screen seems to work OK. A couple issues are that my monitor isn't actually large enough to display the Z10's full vertical resolution, but that's not a show stopper -- just use the controller to zoom as large as possible, and have the video enlarged a bit when displayed on the Z10.
To make it work I needed to use the ForeignWindow media player approach, otherwise the invoke method of displaying video results in the media player's action bar obscuring the action bar that is recorded as part of the video. (as well as a title at the top obscuring some at the top)
Other issues not yet resolved are that a raw screencast doesn't show the user what gestures are performed. (tap, swipe, pinch, etc) I suppose to solve that, one would need to implement a gesture display system for their app so that they are displayed on screen as they occur. That might not be too hard, but not sure.
Also, having the simulator's cursor displayed in the screencast is a bit ugly, but not a showstopper.
Finally, it has dawned on me that including screencast tutorials in an app has the significant drawback that it will balloon the size of the app for users who download it. It would be a pity to increase the size of an app from a few MB all the way to perhaps 100 MB if one were to include a decent number of screencast tutorials. To get around that, they could be put on YouTube, but then you lose the ability to play them in the Media Player and have to go the route of a Web View control, etc, which is a bit ugly. One final approach would be to put the MP4 files on a web server, and direct the Media Player control to them there. I actually tried that, but the video wouldn't play for some reason. I was probably doing something wrong... alternative, I might have a wee bit of download code manually download the screencast and display a progress bar while that is occuring, and then play it locally as before. That way you can keep the screencast files locally once they are downloaded so that they could be watched again later without having to completely re-download.
Not sure what the perfect solution is for this kind of thing...
08-08-2014 08:22 PM
I found a request for this feature in Jira =) ... it was created in 2012... =(
some of the issues with doing this on a computer you pointed out could be worked around depending on the software you use to do your screen recording, some will allow you to remove the cursor, add your own gestures and other cool features.
as for the size, the video codec and software you use will be a large factor, aslo the scale and resolution you record at... no reason to record in super hi-res for a small mobile screen.
08-09-2014 08:52 AM
Well done digging up that jira ticket!
Too bad it didn't get implemented What a great way to market bb apps.
Unfortunately as to the cursor, it's not the Windows cursor that gets recorded, it's QNX (I think) that paints its own cursor, and I'm not sure how that would be turned off. (and if it were turned off, then perhaps you'd not know where the cursor is to actually drive your demo -- unless you could enable the OS cursor again)
08-09-2014 11:33 AM
I use an app called Screen Recorder by Toyoft Development Inc. It's 0.99 cents and allows you to record screencasts and your BB Screen. It also captures audio. Link: https://appworld.blackberry.com/webstore/content/4
There's probably code online on how to do this. It uses the Screen Capture api. Someone should POST THE CODE please...
08-09-2014 01:02 PM
Oh wow, thanks for the link. Glad there's at least SOMETHING out there... I'll give it a try. I suppose this method would have the disadvantage of there not being any cursor at all -- neither the QNX simulator one, nor any kind of dynamically added gesture graphics, and so tutorial videos might be a bit hard for users to understand?
I suppose it would probably be impossible to create such an app that supported gesture graphics.