LookAtMe
VideoView that plays video only when
GIF
AndroidPub (Medium) Post
You can read the AndroidPub post about this library, the perks it provides and other details here.
Screenshots
Prerequisites
Add this in your root build.gradle
file (not your module build.gradle
file):
allprojects {
repositories {
...
maven { url 'https://www.jitpack.io' }
}
}
Dependency
Add this to your module's build.gradle
file (make sure the version matches the JitPack badge above):
dependencies {
implementation 'com.github.Pradyuman7:LookAtMe:Version1.0'
}
For latest release, please check the JitPack version and match it with the dependency.
dependencies {
implementation 'com.github.Pradyuman7:LookAtMe:Version2.0'
}
Usage
LookAtMe is very easy to use and can be directly used in your application. You just need to first declare the LookAtMe
variable in your activity, and add the following in layout of your activity (XML file).
private LookAtMe lookAtMe;
lookAtMe = findViewById(R.id.lookme);
<com.pd.lookatme.LookAtMe
android:id="@+id/lookme"
android:layout_width="match_parent"
android:layout_height="250dp" />
After this, just initiallise LookAtMe
variable with the activity context, add the video URI, start the video and just call setLookMe()
, the whole code would look something like this:
lookAtMe.init(this);
lookAtMe.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.videoplayback));
// lookAtMe.setVideoPath("http://website.com/video/mp4/62000/62792m.mp4"); to use video from a url
lookAtMe.start();
lookAtMe.setLookMe();
You can also personalise the experience according to your need, using init()
. In this method you can add if you want the eye-tracking mode to be FAST
or ACCURATE
, and also which camera to use, front or back. The method bodies look like this:
public void init(Context activityContext, String mode, String cameraFace){
// add mode to be fast or accurate and cameraFace to be front or back
}
public void init(Context activityContext, String mode){
// add mode to be accurate or fast
}
Version2.0 additions
Now in Version2.0 the developer can also access that if the user laughed / smiled during the video. For this, just use this initWithSmilingStatus()
method instead of the normal init()
like this:
lookAtMe.initWithSmilingStatus(this); // for smiling status of the user
To access if the user smiled during the video after this, currently you have to acess the log of the app programatically. Currently, LookAtMe counts when user smiles and for how many frames. If the user smiles for 100 frames in total, LookAtMe logs a line stating that "the user smiled for 100 Frames!". After that count resets to 0.
You can access the log of your android app like this:
try {
Process process = Runtime.getRuntime().exec("logcat");
BufferedReader bufferedReader = new BufferedReader(
new InputStreamReader(process.getInputStream()));
StringBuilder log = new StringBuilder();
String line = "";
while ((line = bufferedReader.readLine()) != null) {
log.append(line);
}
TextView tv = (TextView)findViewById(R.id.textView1);
tv.setText(log.toString());
}
catch (IOException e) {}
To know more about this, please refer this link.
Pull Request
Have some new ideas or found a bug? Do not hesitate to open an issue
and make a pull request
.
License
LookAtME is under . See the LICENSE file for more info.
Credits
The video being played in the android app is owned solely by Pixar animations and the author lays no claim over the video.