ReeePlayer - spaced repetition of video fragments for learning foreign languages

It's not easy to start watching videos in a foreign language. This explains the large number of articles with a wide variety of tips:





  • Watch with Russian subtitles and don't bother.





  • Watch with foreign subtitles and pause if not clear.





  • Review multiple times by combining different approaches.





, , . . , , . , , (), . , , . , .





@kciray. , !





, . – . - . ReeePlayer, , , , . :





  • .





  • , .





  • .





  • , Anki.





, . . Windows.





( , , ):





, ( 1 , 1 , 2 , 3, 5, 8 . .), . , , . , .





( ) . – . . .





, . . , , , 10 . . , 20 . - , .





, . 9 10, . , 20 , 18.





, , . : interval = C * 1.618 ^ level



. . , , 5 :





, " +1 ", 1? - , 2.5 – 5 . , , , , (, ). – , +1 .





C++ Qt, . ? . , . , K-Lite - .





QMediaPlayer, . – ffmpeg. ffmpeg - . QtAV! . , . , , . , – libVLC. VLC. , , .





, , , :





libvlc_instance_t* inst = libvlc_new(0, NULL);
libvlc_media_t* m = libvlc_media_new_path(inst, "test.mp4");
libvlc_media_player_t* mp = libvlc_media_player_new_from_media(m);
libvlc_media_release(m);
auto handle = reinterpret_cast<unsigned __int64*>(widget->winId())
libvlc_media_player_set_hwnd(mp, handle);
libvlc_media_player_play(mp);
      
      



vlc-qt, , , libVLC vlc-qt, .





2 : 3 4. , . (A-B Loop). . , , . , , libvlc_video_set_scale



. , , : "Seems like a regression in the VLC Windows windowing code".





3.0.11. , . 2-3 . , , : , , 10 . , 3.0.8 . .





. . , . , , . : , 10 , .





. sqlite-. , :





# files <-- clips <-- texts

CREATE TABLE "files" (
    "path"    TEXT
);

CREATE TABLE "clips" (
    "file_id"    INTEGER,
    "begin"      INTEGER,
    "end"        INTEGER,
    "time"       INTEGER,
    "rep_time"   INTEGER
);

#      
CREATE VIRTUAL TABLE texts USING FTS5(clip_id, idx, text);
      
      



, . , . : , , . , :





(root)
    [ "  "]
             .mp4
         - .mp4
      
      



- , , :





(root)
    []
        [ "  "]
                 .mp4
        [ " "]
                 - .mp4
      
      



. – - , .





: ( ), .





, , - , .





, – . . :





JSON :





:





  • .





  • .





  • .





  • . *.sasha.json



    , *.masha.json



    . . *.user.json



    .





  • Synchronization and backups are getting more complicated. There shouldn't be any special problems with git, but you can't just put it in Dropbox or Yandex disk. Alternatively, add the ability to create a backup to the application.





But no project files, you can just open any directory with video or audio files, and all the clips inside it will be read. You can also, for example, watch at work (not recommended), and then copy to your home computer.





Links

  • Project on GitHub





    • Description in Russian





    • Binarnik (for now only for Windows)








All Articles