เช•เซ‹เชถเซ‡เช‡เชจเซเช‚ เชฎเซƒเชคเซเชฏเซ เชญเชฒเชพเชฎเชฃเซ‹เชจเซ€ เชธเซ‚เชšเชฟเชฎเชพเช‚ เช›เซ‡ (เชถเซเช‚ เชฏเซเชŸเซเชฏเซเชฌเชจเซ‡ เชนเซ‚เช‚เชซเชพเชณเซเช‚ เช…เชจเซ‡ เชธเชฒเชพเชฎเชค เชฌเชจเชพเชตเชตเซเช‚ เชถเช•เซเชฏ เช›เซ‡?)

เชชเชฐเชฟเชšเชฏ เชŸเซ‚เช‚เช•เซ‹ เช›เซ‡: เชนเซเช‚ เชธเซเชฅเชพเชจเชฟเช• เชชเซเชฒเซ‡เชฒเชฟเชธเซเชŸเซเชธ, เชšเซ‡เชจเชฒเซ‹ เช…เชจเซ‡ เชญเชฒเชพเชฎเชฃเซ‹ เชธเชพเชฅเซ‡ Android เชฎเชพเชŸเซ‡ YouTube เช‘เชจเชฒเชพเช‡เชจ เชชเซเชฒเซ‡เชฏเชฐ เชตเชฟเชถเซ‡ เชตเชพเชค เช•เชฐเชตเชพ เชฎเชพเช‚เช—เซ เช›เซเช‚.

เช•เซ‹เชถเซ‡เช‡เชจเซเช‚ เชฎเซƒเชคเซเชฏเซ เชญเชฒเชพเชฎเชฃเซ‹เชจเซ€ เชธเซ‚เชšเชฟเชฎเชพเช‚ เช›เซ‡ (เชถเซเช‚ เชฏเซเชŸเซเชฏเซเชฌเชจเซ‡ เชนเซ‚เช‚เชซเชพเชณเซเช‚ เช…เชจเซ‡ เชธเชฒเชพเชฎเชค เชฌเชจเชพเชตเชตเซเช‚ เชถเช•เซเชฏ เช›เซ‡?)

เชตเชฟเชธเซเชคเซƒเชค เชชเชฐเชฟเชšเชฏ:
เชฅเซ‹เชกเชพ เชธเชฎเชฏ เชชเชนเซ‡เชฒเชพ เชฎเชจเซ‡ เชเช• เช…เชฆเซเชญเซเชค เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชจเชพ เชฒเซ‡เช–เช• เชœเซ‡เชตเซ€ เชœ เชธเชฎเชธเซเชฏเชพเชจเซ‹ เชธเชพเชฎเชจเซ‹ เช•เชฐเชตเซ‹ เชชเชกเซเชฏเซ‹ เชนเชคเซ‹ เชšเซ‡เชจเชฒ เชตเซเชนเชพเช‡เชŸเชฒเชฟเชธเซเชŸ, เช…เชจเซ‡ เชฎเชพเชฐเชพ เชฎเชพเชŸเซ‡ เชคเซ‡เชจเชพ เชชเซเชฐเชคเซเชฏเซ‡ เชฌเชฐเชพเชฌเชฐ เช เชœ เชตเชฒเชฃ เชจเช•เซเช•เซ€ เช•เชฐเซเชฏเซเช‚: เชนเซเช‚ เชธเชฎเชฏเชพเช‚เชคเชฐเซ‡ เชฎเชพเชฐเชพ เชฌเชพเชณเช•เชจเซ‡ เช•เชพเชฐเซเชŸเซ‚เชจ เชธเชพเชฅเซ‡ เชŸเซ‡เชฌเซเชฒเซ‡เชŸ เช…เชฅเชตเชพ เชธเซเชฎเชพเชฐเซเชŸเชซเซ‹เชจ เช†เชชเชตเชพ เชธเช•เซเชทเชฎ เชฌเชจเชตเชพ เชฎเชพเช‚เช—เซ เช›เซเช‚, เชชเชฐเช‚เชคเซ 2-3 เช•เซเชฒเชฟเช•เซเชธ เชชเช›เซ€, เชธเซ‚เชšเชฟ เช•เซเชฏเชพเช‚ เช›เซ‡ เชคเซ‡เชจเชพเชฅเซ€ เชนเซเช‚ เชฌเชฟเชฒเช•เซเชฒ เช–เซเชถ เชจเชฅเซ€. เชชเซเชฐเชฎเชพเชฃเชญเซ‚เชค เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเซ‹เชฎเชพเช‚ เชญเชฒเชพเชฎเชฃเซ‹เชจเซ€ - YouTube เช•เซเชฒเชพเชฏเช‚เชŸ - เชฌเชพเชณเช•เชจเซ‡ เชฒเซ‡ เช›เซ‡.

เช•เชฎเชจเชธเซ€เชฌเซ‡, เชšเซ‡เชจเชฒ เชตเซเชนเชพเช‡เชŸเชฒเชฟเชธเซเชŸ เชเชชเซเชฒเซ€เช•เซ‡เชถเชจ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซเชฏเชพ เชชเช›เซ€, เชฌเซ€เชœเซ€ เชตเชงเซ เช…เชธเซเชชเชทเซเชŸ, เชชเชฐเช‚เชคเซ เชนเชœเซ€ เชชเชฃ เชœเซ€เชตเชฒเซ‡เชฃ เช–เชพเชฎเซ€ เชฎเชณเซ€ เช†เชตเซ€ - NIH I (เช…เชจเซ‡, เชธเซŒเชฅเซ€ เช…เช—เชคเซเชฏเชจเซเช‚, เชฎเชพเชฐเชพ เชชเซเชคเซเชฐ) เชจเซ‡ เชคเซ‡เชจเซเช‚ เช‡เชจเซเชŸเชฐเชซเซ‡เชธ เช–เซ‚เชฌ เช…เชจเซเช•เซ‚เชณ เชจ เชฒเชพเช—เซเชฏเซเช‚, เช–เชพเชธ เช•เชฐเซ€เชจเซ‡ YouTube Kids เชชเซเชฒเซ‡เชฏเชฐเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซ€ เช†เชฆเชค เชชเช›เซ€.

เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡, เชฅเซ‹เชกเชพ เชธเชฎเชฏ เชชเช›เซ€ เชนเซเช‚ เชฎเชพเชฐเชพ เชชเซ‹เชคเชพเชจเชพ เช…เชฎเชฒเซ€เช•เชฐเชฃ เชฎเชพเชŸเซ‡ เชคเซˆเชฏเชพเชฐ เชนเชคเซ‹. เชฅเซ‹เชกเชพ เชธเชฎเชฏ เชชเช›เซ€, เชชเซเชฐเชฅเชฎ เชชเซเชฐเช•เชพเชถเชจ เชชเชฐ เชŸเซ‡เช— เชฎเซ‚เช•เชตเชพเชจเซเช‚ เชถเช•เซเชฏ เชฌเชจเซเชฏเซเช‚.

เชฎเซเช–เซเชฏ เชตเชฟเชถเซ‡เชทเชคเชพเช“:

  • เชคเชฎเชพเชฐเซ€ เชฎเชจเชชเชธเช‚เชฆ เชšเซ‡เชจเชฒเซ‹ เช…เชจเซ‡ เชชเซเชฒเซ‡เชฒเชฟเชธเซเชŸ เช‰เชฎเซ‡เชฐเซ‹ - เชคเซ‡ เชธเซเชฅเชพเชจเชฟเช• เชกเซ‡เชŸเชพเชฌเซ‡เชเชฎเชพเช‚ เชธเชพเชšเชตเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡ เช…เชจเซ‡ เช…เชจเซเช•เซเชฐเชฎเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡
  • เช‰เชฎเซ‡เชฐเซ‡เชฒเซ€ เชชเซเชฒเซ‡เชฒเชฟเชธเซเชŸเชฎเชพเช‚, เชœเซ‹ เชคเชฎเชจเซ‡ เชฌเชฟเชจเชœเชฐเซ‚เชฐเซ€ เชตเซ€เชกเชฟเชฏเซ‹เชจเซ€ เชœเชฐเซ‚เชฐ เชจ เชนเซ‹เชฏ เชคเซ‹ เชคเซ‡เชจเซ‡ เชฌเช‚เชง เช•เชฐเซ‹
  • เชญเชฒเชพเชฎเชฃเซ‹เชจเซ€ เชธเซ‚เชšเชฟ เชซเช•เซเชค เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชฎเชพเช‚ เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡เชฒเซ€ เชšเซ‡เชจเชฒเซ‹ เช…เชจเซ‡ เชชเซเชฒเซ‡เชฒเชฟเชธเซเชŸเซเชธเชฎเชพเช‚เชฅเซ€ เชฐเซ‡เชจเซเชกเชฎเชฒเซ€ เชœเชจเชฐเซ‡เชŸ เชฅเชพเชฏ เช›เซ‡

เช“เชชเชจ เชธเซ‹เชฐเซเชธ, GPLv3 เชฒเชพเช‡เชธเชจเซเชธ: https://github.com/sadr0b0t/yashlang/

Google API เช…เชจเซ‡ เชตเซ‡เชฌ เชฐเซ‡เชชเชฐเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซเชฏเชพ เชตเชฟเชจเชพ เชคเชฎเชพเชฐเซ€ เชเชจเซเชกเซเชฐเซ‹เช‡เชก เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชฎเชพเช‚ YouTube เชตเชฟเชกเชฟเช“เช เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชšเชฒเชพเชตเชตเซ€ เชคเซ‡ เช…เช‚เช—เซ‡เชจเซ€ เช•เซ‡เชŸเชฒเซ€เช• เชคเช•เชจเซ€เช•เซ€ เชตเชฟเช—เชคเซ‹, เชตเชงเซ เชตเชฟเช—เชคเชตเชพเชฐ เชฎเซเช–เซเชฏ เชฒเช•เซเชทเชฃเซ‹เชจเซ€ เชเชพเช‚เช–เซ€ เชจเซ€เชšเซ‡ เช†เชชเซ‡เชฒ เช›เซ‡.

เชฎเซเช–เซเชฏ เชธเซเช•เซเชฐเซ€เชจ เชชเชฐ เช…เชจเซ‡ เชชเซเชฒเซ‡เชฏเชฐ เชธเซเช•เซเชฐเซ€เชจ เชชเชฐ: เชจเซ‹เชจ-เชฐเซ‡เชจเซเชกเชฎ เชšเซ‡เชจเชฒเซ‹ เชคเชฐเชซเชฅเซ€ เชฐเซ‡เชจเซเชกเชฎ เชญเชฒเชพเชฎเชฃเซ‹

เช•เซ‹เชถเซ‡เช‡เชจเซเช‚ เชฎเซƒเชคเซเชฏเซ เชญเชฒเชพเชฎเชฃเซ‹เชจเซ€ เชธเซ‚เชšเชฟเชฎเชพเช‚ เช›เซ‡ (เชถเซเช‚ เชฏเซเชŸเซเชฏเซเชฌเชจเซ‡ เชนเซ‚เช‚เชซเชพเชณเซเช‚ เช…เชจเซ‡ เชธเชฒเชพเชฎเชค เชฌเชจเชพเชตเชตเซเช‚ เชถเช•เซเชฏ เช›เซ‡?)

เช•เซ‹เชถเซ‡เช‡เชจเซเช‚ เชฎเซƒเชคเซเชฏเซ เชญเชฒเชพเชฎเชฃเซ‹เชจเซ€ เชธเซ‚เชšเชฟเชฎเชพเช‚ เช›เซ‡ (เชถเซเช‚ เชฏเซเชŸเซเชฏเซเชฌเชจเซ‡ เชนเซ‚เช‚เชซเชพเชณเซเช‚ เช…เชจเซ‡ เชธเชฒเชพเชฎเชค เชฌเชจเชพเชตเชตเซเช‚ เชถเช•เซเชฏ เช›เซ‡?)

เช•เซ‹เชถเซ‡เช‡เชจเซเช‚ เชฎเซƒเชคเซเชฏเซ เชญเชฒเชพเชฎเชฃเซ‹เชจเซ€ เชธเซ‚เชšเชฟเชฎเชพเช‚ เช›เซ‡ (เชถเซเช‚ เชฏเซเชŸเซเชฏเซเชฌเชจเซ‡ เชนเซ‚เช‚เชซเชพเชณเซเช‚ เช…เชจเซ‡ เชธเชฒเชพเชฎเชค เชฌเชจเชพเชตเชตเซเช‚ เชถเช•เซเชฏ เช›เซ‡?)

เช•เซ‹เชถเซ‡เช‡เชจเซเช‚ เชฎเซƒเชคเซเชฏเซ เชญเชฒเชพเชฎเชฃเซ‹เชจเซ€ เชธเซ‚เชšเชฟเชฎเชพเช‚ เช›เซ‡ (เชถเซเช‚ เชฏเซเชŸเซเชฏเซเชฌเชจเซ‡ เชนเซ‚เช‚เชซเชพเชณเซเช‚ เช…เชจเซ‡ เชธเชฒเชพเชฎเชค เชฌเชจเชพเชตเชตเซเช‚ เชถเช•เซเชฏ เช›เซ‡?)

เช•เซ‹เชถเซ‡เช‡เชจเซเช‚ เชฎเซƒเชคเซเชฏเซ เชญเชฒเชพเชฎเชฃเซ‹เชจเซ€ เชธเซ‚เชšเชฟเชฎเชพเช‚ เช›เซ‡ (เชถเซเช‚ เชฏเซเชŸเซเชฏเซเชฌเชจเซ‡ เชนเซ‚เช‚เชซเชพเชณเซเช‚ เช…เชจเซ‡ เชธเชฒเชพเชฎเชค เชฌเชจเชพเชตเชตเซเช‚ เชถเช•เซเชฏ เช›เซ‡?)

เช•เซ‹เชถเซ‡เช‡เชจเซเช‚ เชฎเซƒเชคเซเชฏเซ เชญเชฒเชพเชฎเชฃเซ‹เชจเซ€ เชธเซ‚เชšเชฟเชฎเชพเช‚ เช›เซ‡ (เชถเซเช‚ เชฏเซเชŸเซเชฏเซเชฌเชจเซ‡ เชนเซ‚เช‚เชซเชพเชณเซเช‚ เช…เชจเซ‡ เชธเชฒเชพเชฎเชค เชฌเชจเชพเชตเชตเซเช‚ เชถเช•เซเชฏ เช›เซ‡?)

เชธเซเชฅเชพเชจเชฟเช• เชกเซ‡เชŸเชพเชฌเซ‡เชเชฎเชพเช‚ เชคเซเชตเชฐเชฟเชค เชถเซ‹เชง

เช•เซ‹เชถเซ‡เช‡เชจเซเช‚ เชฎเซƒเชคเซเชฏเซ เชญเชฒเชพเชฎเชฃเซ‹เชจเซ€ เชธเซ‚เชšเชฟเชฎเชพเช‚ เช›เซ‡ (เชถเซเช‚ เชฏเซเชŸเซเชฏเซเชฌเชจเซ‡ เชนเซ‚เช‚เชซเชพเชณเซเช‚ เช…เชจเซ‡ เชธเชฒเชพเชฎเชค เชฌเชจเชพเชตเชตเซเช‚ เชถเช•เซเชฏ เช›เซ‡?) => เช•เซ‹เชถเซ‡เช‡เชจเซเช‚ เชฎเซƒเชคเซเชฏเซ เชญเชฒเชพเชฎเชฃเซ‹เชจเซ€ เชธเซ‚เชšเชฟเชฎเชพเช‚ เช›เซ‡ (เชถเซเช‚ เชฏเซเชŸเซเชฏเซเชฌเชจเซ‡ เชนเซ‚เช‚เชซเชพเชณเซเช‚ เช…เชจเซ‡ เชธเชฒเชพเชฎเชค เชฌเชจเชพเชตเชตเซเช‚ เชถเช•เซเชฏ เช›เซ‡?)

เชจเชตเซ€ เชšเซ‡เชจเชฒ เช…เชฅเชตเชพ เชชเซเชฒเซ‡เชฒเชฟเชธเซเชŸ เช‰เชฎเซ‡เชฐเซ‹

เช•เซ‹เชถเซ‡เช‡เชจเซเช‚ เชฎเซƒเชคเซเชฏเซ เชญเชฒเชพเชฎเชฃเซ‹เชจเซ€ เชธเซ‚เชšเชฟเชฎเชพเช‚ เช›เซ‡ (เชถเซเช‚ เชฏเซเชŸเซเชฏเซเชฌเชจเซ‡ เชนเซ‚เช‚เชซเชพเชณเซเช‚ เช…เชจเซ‡ เชธเชฒเชพเชฎเชค เชฌเชจเชพเชตเชตเซเช‚ เชถเช•เซเชฏ เช›เซ‡?) เช•เซ‹เชถเซ‡เช‡เชจเซเช‚ เชฎเซƒเชคเซเชฏเซ เชญเชฒเชพเชฎเชฃเซ‹เชจเซ€ เชธเซ‚เชšเชฟเชฎเชพเช‚ เช›เซ‡ (เชถเซเช‚ เชฏเซเชŸเซเชฏเซเชฌเชจเซ‡ เชนเซ‚เช‚เชซเชพเชณเซเช‚ เช…เชจเซ‡ เชธเชฒเชพเชฎเชค เชฌเชจเชพเชตเชตเซเช‚ เชถเช•เซเชฏ เช›เซ‡?) เช•เซ‹เชถเซ‡เช‡เชจเซเช‚ เชฎเซƒเชคเซเชฏเซ เชญเชฒเชพเชฎเชฃเซ‹เชจเซ€ เชธเซ‚เชšเชฟเชฎเชพเช‚ เช›เซ‡ (เชถเซเช‚ เชฏเซเชŸเซเชฏเซเชฌเชจเซ‡ เชนเซ‚เช‚เชซเชพเชณเซเช‚ เช…เชจเซ‡ เชธเชฒเชพเชฎเชค เชฌเชจเชพเชตเชตเซเช‚ เชถเช•เซเชฏ เช›เซ‡?) เช•เซ‹เชถเซ‡เช‡เชจเซเช‚ เชฎเซƒเชคเซเชฏเซ เชญเชฒเชพเชฎเชฃเซ‹เชจเซ€ เชธเซ‚เชšเชฟเชฎเชพเช‚ เช›เซ‡ (เชถเซเช‚ เชฏเซเชŸเซเชฏเซเชฌเชจเซ‡ เชนเซ‚เช‚เชซเชพเชณเซเช‚ เช…เชจเซ‡ เชธเชฒเชพเชฎเชค เชฌเชจเชพเชตเชตเซเช‚ เชถเช•เซเชฏ เช›เซ‡?)

เช•เซ‹เชถเซ‡เช‡เชจเซเช‚ เชฎเซƒเชคเซเชฏเซ เชญเชฒเชพเชฎเชฃเซ‹เชจเซ€ เชธเซ‚เชšเชฟเชฎเชพเช‚ เช›เซ‡ (เชถเซเช‚ เชฏเซเชŸเซเชฏเซเชฌเชจเซ‡ เชนเซ‚เช‚เชซเชพเชณเซเช‚ เช…เชจเซ‡ เชธเชฒเชพเชฎเชค เชฌเชจเชพเชตเชตเซเช‚ เชถเช•เซเชฏ เช›เซ‡?) เช•เซ‹เชถเซ‡เช‡เชจเซเช‚ เชฎเซƒเชคเซเชฏเซ เชญเชฒเชพเชฎเชฃเซ‹เชจเซ€ เชธเซ‚เชšเชฟเชฎเชพเช‚ เช›เซ‡ (เชถเซเช‚ เชฏเซเชŸเซเชฏเซเชฌเชจเซ‡ เชนเซ‚เช‚เชซเชพเชณเซเช‚ เช…เชจเซ‡ เชธเชฒเชพเชฎเชค เชฌเชจเชพเชตเชตเซเช‚ เชถเช•เซเชฏ เช›เซ‡?) เช•เซ‹เชถเซ‡เช‡เชจเซเช‚ เชฎเซƒเชคเซเชฏเซ เชญเชฒเชพเชฎเชฃเซ‹เชจเซ€ เชธเซ‚เชšเชฟเชฎเชพเช‚ เช›เซ‡ (เชถเซเช‚ เชฏเซเชŸเซเชฏเซเชฌเชจเซ‡ เชนเซ‚เช‚เชซเชพเชณเซเช‚ เช…เชจเซ‡ เชธเชฒเชพเชฎเชค เชฌเชจเชพเชตเชตเซเช‚ เชถเช•เซเชฏ เช›เซ‡?) เช•เซ‹เชถเซ‡เช‡เชจเซเช‚ เชฎเซƒเชคเซเชฏเซ เชญเชฒเชพเชฎเชฃเซ‹เชจเซ€ เชธเซ‚เชšเชฟเชฎเชพเช‚ เช›เซ‡ (เชถเซเช‚ เชฏเซเชŸเซเชฏเซเชฌเชจเซ‡ เชนเซ‚เช‚เชซเชพเชณเซเช‚ เช…เชจเซ‡ เชธเชฒเชพเชฎเชค เชฌเชจเชพเชตเชตเซเช‚ เชถเช•เซเชฏ เช›เซ‡?)

เช“เชจเชฒเชพเชˆเชจ เชจเชพเชฎ เชฆเซเชตเชพเชฐเชพ เชถเซ‹เชงเซ‹ เช…เชฅเชตเชพ เชœเชพเชฃเซ€เชคเซเช‚ เชธเชฐเชจเชพเชฎเซเช‚ เชฆเชพเช–เชฒ เช•เชฐเซ‹. เชšเซ‡เชจเชฒ เช…เชฅเชตเชพ เชชเซเชฒเซ‡เชฒเชฟเชธเซเชŸเชจเซ€ เชตเชฟเชกเชฟเช“เชเชจเซ€ เชธเซ‚เชšเชฟ เชธเซเชฅเชพเชจเชฟเช• เชกเซ‡เชŸเชพเชฌเซ‡เชเชฎเชพเช‚ เชธเชพเชšเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡; เชšเชฟเชนเซเชจเซ‹ เช•เซ‡เชถ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชคเชพเช‚ เชจเชฅเซ€.

เชกเชพเชฏเชจเซ‡เชฎเชฟเช• เชชเซเชฒเซ‡เชฒเชฟเชธเซเชŸ - เชถเซ‹เชง เชชเชฐเชฟเชฃเชพเชฎเซ‹ เชšเชฒเชพเชตเซ‹

เช•เซ‹เชถเซ‡เช‡เชจเซเช‚ เชฎเซƒเชคเซเชฏเซ เชญเชฒเชพเชฎเชฃเซ‹เชจเซ€ เชธเซ‚เชšเชฟเชฎเชพเช‚ เช›เซ‡ (เชถเซเช‚ เชฏเซเชŸเซเชฏเซเชฌเชจเซ‡ เชนเซ‚เช‚เชซเชพเชณเซเช‚ เช…เชจเซ‡ เชธเชฒเชพเชฎเชค เชฌเชจเชพเชตเชตเซเช‚ เชถเช•เซเชฏ เช›เซ‡?) เช•เซ‹เชถเซ‡เช‡เชจเซเช‚ เชฎเซƒเชคเซเชฏเซ เชญเชฒเชพเชฎเชฃเซ‹เชจเซ€ เชธเซ‚เชšเชฟเชฎเชพเช‚ เช›เซ‡ (เชถเซเช‚ เชฏเซเชŸเซเชฏเซเชฌเชจเซ‡ เชนเซ‚เช‚เชซเชพเชณเซเช‚ เช…เชจเซ‡ เชธเชฒเชพเชฎเชค เชฌเชจเชพเชตเชตเซเช‚ เชถเช•เซเชฏ เช›เซ‡?) => เช•เซ‹เชถเซ‡เช‡เชจเซเช‚ เชฎเซƒเชคเซเชฏเซ เชญเชฒเชพเชฎเชฃเซ‹เชจเซ€ เชธเซ‚เชšเชฟเชฎเชพเช‚ เช›เซ‡ (เชถเซเช‚ เชฏเซเชŸเซเชฏเซเชฌเชจเซ‡ เชนเซ‚เช‚เชซเชพเชณเซเช‚ เช…เชจเซ‡ เชธเชฒเชพเชฎเชค เชฌเชจเชพเชตเชตเซเช‚ เชถเช•เซเชฏ เช›เซ‡?)

เช•เซ‹เชถเซ‡เช‡เชจเซเช‚ เชฎเซƒเชคเซเชฏเซ เชญเชฒเชพเชฎเชฃเซ‹เชจเซ€ เชธเซ‚เชšเชฟเชฎเชพเช‚ เช›เซ‡ (เชถเซเช‚ เชฏเซเชŸเซเชฏเซเชฌเชจเซ‡ เชนเซ‚เช‚เชซเชพเชณเซเช‚ เช…เชจเซ‡ เชธเชฒเชพเชฎเชค เชฌเชจเชพเชตเชตเซเช‚ เชถเช•เซเชฏ เช›เซ‡?)

เช•เซ‹เชถเซ‡เช‡เชจเซเช‚ เชฎเซƒเชคเซเชฏเซ เชญเชฒเชพเชฎเชฃเซ‹เชจเซ€ เชธเซ‚เชšเชฟเชฎเชพเช‚ เช›เซ‡ (เชถเซเช‚ เชฏเซเชŸเซเชฏเซเชฌเชจเซ‡ เชนเซ‚เช‚เชซเชพเชณเซเช‚ เช…เชจเซ‡ เชธเชฒเชพเชฎเชค เชฌเชจเชพเชตเชตเซเช‚ เชถเช•เซเชฏ เช›เซ‡?)

เชตเชฟเชกเชฟเช“ เชญเชฒเชพเชฎเชฃเซ‹เชฎเชพเช‚ เชซเช•เซเชค เชเชตเชพ เชตเชฟเชกเชฟเช“เช เชนเชถเซ‡ เชœเซ‡ เชถเซ‹เชง เช•เซเชตเซ‡เชฐเซ€ เชธเช‚เชคเซ‹เชทเซ‡ เช›เซ‡.

เชคเซ‡เชตเซ€ เชœ เชฐเซ€เชคเซ‡, เชœเซ‹ เชคเชฎเซ‡ เชชเซเชฒเซ‡เชฒเชฟเชธเซเชŸ เชธเซ‡เชŸเชฟเช‚เช—เซเชธเชฎเชพเช‚เชฅเซ€ เชตเชฟเชกเชฟเช“ เช–เซ‹เชฒเซ‹ เช›เซ‹, เชคเซ‹ เชญเชฒเชพเชฎเชฃเซ‹เชจเซ€ เชธเซ‚เชšเชฟเชฎเชพเช‚ เชซเช•เซเชค เชคเซ‡ เชœ เชชเซเชฒเซ‡เชฒเชฟเชธเซเชŸเชจเชพ เชตเชฟเชกเชฟเช“เช เชฆเซ‡เช–เชพเชถเซ‡.

เชชเซเชฒเซ‡เชฒเชฟเชธเซเชŸ เช…เชจเซ‡ เชšเซ‡เชจเชฒเซ‹ เช…เชธเซเชฅเชพเชฏเซ€ เชฐเซ‚เชชเซ‡ เชฌเช‚เชง เช…เชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชšเชพเชฒเซ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡

เช•เซ‹เชถเซ‡เช‡เชจเซเช‚ เชฎเซƒเชคเซเชฏเซ เชญเชฒเชพเชฎเชฃเซ‹เชจเซ€ เชธเซ‚เชšเชฟเชฎเชพเช‚ เช›เซ‡ (เชถเซเช‚ เชฏเซเชŸเซเชฏเซเชฌเชจเซ‡ เชนเซ‚เช‚เชซเชพเชณเซเช‚ เช…เชจเซ‡ เชธเชฒเชพเชฎเชค เชฌเชจเชพเชตเชตเซเช‚ เชถเช•เซเชฏ เช›เซ‡?) เช•เซ‹เชถเซ‡เช‡เชจเซเช‚ เชฎเซƒเชคเซเชฏเซ เชญเชฒเชพเชฎเชฃเซ‹เชจเซ€ เชธเซ‚เชšเชฟเชฎเชพเช‚ เช›เซ‡ (เชถเซเช‚ เชฏเซเชŸเซเชฏเซเชฌเชจเซ‡ เชนเซ‚เช‚เชซเชพเชณเซเช‚ เช…เชจเซ‡ เชธเชฒเชพเชฎเชค เชฌเชจเชพเชตเชตเซเช‚ เชถเช•เซเชฏ เช›เซ‡?) เช•เซ‹เชถเซ‡เช‡เชจเซเช‚ เชฎเซƒเชคเซเชฏเซ เชญเชฒเชพเชฎเชฃเซ‹เชจเซ€ เชธเซ‚เชšเชฟเชฎเชพเช‚ เช›เซ‡ (เชถเซเช‚ เชฏเซเชŸเซเชฏเซเชฌเชจเซ‡ เชนเซ‚เช‚เชซเชพเชณเซเช‚ เช…เชจเซ‡ เชธเชฒเชพเชฎเชค เชฌเชจเชพเชตเชตเซเช‚ เชถเช•เซเชฏ เช›เซ‡?) เช•เซ‹เชถเซ‡เช‡เชจเซเช‚ เชฎเซƒเชคเซเชฏเซ เชญเชฒเชพเชฎเชฃเซ‹เชจเซ€ เชธเซ‚เชšเชฟเชฎเชพเช‚ เช›เซ‡ (เชถเซเช‚ เชฏเซเชŸเซเชฏเซเชฌเชจเซ‡ เชนเซ‚เช‚เชซเชพเชณเซเช‚ เช…เชจเซ‡ เชธเชฒเชพเชฎเชค เชฌเชจเชพเชตเชตเซเช‚ เชถเช•เซเชฏ เช›เซ‡?)

เชฎเชนเซ‡เชฐเชฌเชพเชจเซ€ เช•เชฐเซ€เชจเซ‡ เชจเซ‹เช‚เชง เช•เชฐเซ‹: เช…เช•เซเชทเชฎ เชชเซเชฒเซ‡เชฒเชฟเชธเซเชŸเชฎเชพเช‚เชฅเซ€ เชตเชฟเชกเชฟเช“เช เชชเชฃ เชถเซ‹เชง เชชเชฐเชฟเชฃเชพเชฎเซ‹, เชœเซ‹เชตเชพเชจเซ‹ เช‡เชคเชฟเชนเชพเชธ เช…เชจเซ‡ เชฎเชจเชชเชธเช‚เชฆ เชธเซ‚เชšเชฟเชฎเชพเช‚เชฅเซ€ เช…เชฆเซƒเชถเซเชฏ เชฅเชˆ เชœเชถเซ‡. เชชเชฐเช‚เชคเซ เชšเชฟเช‚เชคเชพ เช•เชฐเชถเซ‹ เชจเชนเซ€เช‚, เชชเซเชฒเซ‡เชฒเชฟเชธเซเชŸ เชซเชฐเซ€เชฅเซ€ เชšเชพเชฒเซ เชฅเชฏเชพ เชชเช›เซ€ เชคเชฐเชค เชœ เชคเซ‡เช“ เชซเชฐเซ€เชฅเซ€ เชคเซเชฏเชพเช‚ เชฆเซ‡เช–เชพเชถเซ‡.

เชฌเซเชฒเซ‡เช•เชฒเชฟเชธเซเชŸเชฎเชพเช‚ เชตเชฟเชกเชฟเช“ เช‰เชฎเซ‡เชฐเซ‹

เช•เซ‹เชถเซ‡เช‡เชจเซเช‚ เชฎเซƒเชคเซเชฏเซ เชญเชฒเชพเชฎเชฃเซ‹เชจเซ€ เชธเซ‚เชšเชฟเชฎเชพเช‚ เช›เซ‡ (เชถเซเช‚ เชฏเซเชŸเซเชฏเซเชฌเชจเซ‡ เชนเซ‚เช‚เชซเชพเชณเซเช‚ เช…เชจเซ‡ เชธเชฒเชพเชฎเชค เชฌเชจเชพเชตเชตเซเช‚ เชถเช•เซเชฏ เช›เซ‡?) เช•เซ‹เชถเซ‡เช‡เชจเซเช‚ เชฎเซƒเชคเซเชฏเซ เชญเชฒเชพเชฎเชฃเซ‹เชจเซ€ เชธเซ‚เชšเชฟเชฎเชพเช‚ เช›เซ‡ (เชถเซเช‚ เชฏเซเชŸเซเชฏเซเชฌเชจเซ‡ เชนเซ‚เช‚เชซเชพเชณเซเช‚ เช…เชจเซ‡ เชธเชฒเชพเชฎเชค เชฌเชจเชพเชตเชตเซเช‚ เชถเช•เซเชฏ เช›เซ‡?) เช•เซ‹เชถเซ‡เช‡เชจเซเช‚ เชฎเซƒเชคเซเชฏเซ เชญเชฒเชพเชฎเชฃเซ‹เชจเซ€ เชธเซ‚เชšเชฟเชฎเชพเช‚ เช›เซ‡ (เชถเซเช‚ เชฏเซเชŸเซเชฏเซเชฌเชจเซ‡ เชนเซ‚เช‚เชซเชพเชณเซเช‚ เช…เชจเซ‡ เชธเชฒเชพเชฎเชค เชฌเชจเชพเชตเชตเซเช‚ เชถเช•เซเชฏ เช›เซ‡?)

เช…เชตเชฐเซ‹เชงเชฟเชค เชตเชฟเชกเชฟเช“ เชญเชฒเชพเชฎเชฃเซ‹เชฎเชพเช‚, เชถเซ‹เชง เชชเชฐเชฟเชฃเชพเชฎเซ‹เชฎเชพเช‚ เชชเซเชฐเชฆเชฐเซเชถเชฟเชค เชฅเชถเซ‡ เชจเชนเซ€เช‚ เช…เชจเซ‡ เชฎเชจเชชเชธเช‚เชฆเชจเซ€ เชธเซ‚เชšเชฟเชฎเชพเช‚เชฅเซ€ เช…เชจเซ‡ เชœเซ‹เชตเชพเชจเชพ เช‡เชคเชฟเชนเชพเชธเชฎเชพเช‚เชฅเซ€ เช…เชฆเซƒเชถเซเชฏ เชฅเชˆ เชœเชถเซ‡. เชตเชฟเชกเชฟเช“ เชนเชœเซ€ เชชเชฃ เชชเซเชฒเซ‡เชฒเชฟเชธเซเชŸ เชธเซ‡เชŸเชฟเช‚เช—เซเชธเชฎเชพเช‚ เชฆเซ‡เช–เชพเชถเซ‡.

เชฌเซเชฒเซ‡เช•เชฒเชฟเชธเซเชŸ เชœเซเช“ เช…เชจเซ‡ เชญเซ‚เชฒเชฅเซ€ เช…เชตเชฐเซ‹เชงเชฟเชค เชตเชธเซเชคเซเช“เชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชธเช•เซเชทเชฎ เช•เชฐเซ‹:
เชธเซ‡เชŸเชฟเช‚เช—เซเชธ > เชนเซ‡เชกเชฐ เชฎเซ‡เชจเซ‚ > เชฌเซเชฒเซ‡เช•เชฒเชฟเชธเซเชŸ

เช•เซ‹เชถเซ‡เช‡เชจเซเช‚ เชฎเซƒเชคเซเชฏเซ เชญเชฒเชพเชฎเชฃเซ‹เชจเซ€ เชธเซ‚เชšเชฟเชฎเชพเช‚ เช›เซ‡ (เชถเซเช‚ เชฏเซเชŸเซเชฏเซเชฌเชจเซ‡ เชนเซ‚เช‚เชซเชพเชณเซเช‚ เช…เชจเซ‡ เชธเชฒเชพเชฎเชค เชฌเชจเชพเชตเชตเซเช‚ เชถเช•เซเชฏ เช›เซ‡?) เช•เซ‹เชถเซ‡เช‡เชจเซเช‚ เชฎเซƒเชคเซเชฏเซ เชญเชฒเชพเชฎเชฃเซ‹เชจเซ€ เชธเซ‚เชšเชฟเชฎเชพเช‚ เช›เซ‡ (เชถเซเช‚ เชฏเซเชŸเซเชฏเซเชฌเชจเซ‡ เชนเซ‚เช‚เชซเชพเชณเซเช‚ เช…เชจเซ‡ เชธเชฒเชพเชฎเชค เชฌเชจเชพเชตเชตเซเช‚ เชถเช•เซเชฏ เช›เซ‡?)

เชฎเชจเชชเชธเช‚เชฆ เชตเชฟเชกเชฟเช“เช เช…เชจเซ‡ เชœเซ‹เชตเชพเชจเซ‹ เช‡เชคเชฟเชนเชพเชธ

เช•เซ‹เชถเซ‡เช‡เชจเซเช‚ เชฎเซƒเชคเซเชฏเซ เชญเชฒเชพเชฎเชฃเซ‹เชจเซ€ เชธเซ‚เชšเชฟเชฎเชพเช‚ เช›เซ‡ (เชถเซเช‚ เชฏเซเชŸเซเชฏเซเชฌเชจเซ‡ เชนเซ‚เช‚เชซเชพเชณเซเช‚ เช…เชจเซ‡ เชธเชฒเชพเชฎเชค เชฌเชจเชพเชตเชตเซเช‚ เชถเช•เซเชฏ เช›เซ‡?) เช•เซ‹เชถเซ‡เช‡เชจเซเช‚ เชฎเซƒเชคเซเชฏเซ เชญเชฒเชพเชฎเชฃเซ‹เชจเซ€ เชธเซ‚เชšเชฟเชฎเชพเช‚ เช›เซ‡ (เชถเซเช‚ เชฏเซเชŸเซเชฏเซเชฌเชจเซ‡ เชนเซ‚เช‚เชซเชพเชณเซเช‚ เช…เชจเซ‡ เชธเชฒเชพเชฎเชค เชฌเชจเชพเชตเชตเซเช‚ เชถเช•เซเชฏ เช›เซ‡?) เช•เซ‹เชถเซ‡เช‡เชจเซเช‚ เชฎเซƒเชคเซเชฏเซ เชญเชฒเชพเชฎเชฃเซ‹เชจเซ€ เชธเซ‚เชšเชฟเชฎเชพเช‚ เช›เซ‡ (เชถเซเช‚ เชฏเซเชŸเซเชฏเซเชฌเชจเซ‡ เชนเซ‚เช‚เชซเชพเชณเซเช‚ เช…เชจเซ‡ เชธเชฒเชพเชฎเชค เชฌเชจเชพเชตเชตเซเช‚ เชถเช•เซเชฏ เช›เซ‡?)

เชชเซเชฒเซ‡เชฏเชฐ เชธเซเช•เซเชฐเซ€เชจ เชชเชฐ เชฎเชจเชชเชธเช‚เชฆ เชตเชฟเชกเชฟเช“เช เช‰เชชเชฐ เชœเชฎเชฃเชพ เช–เซ‚เชฃเชพเชฎเชพเช‚ เชซเซ‚เชฆเชกเซ€ เชธเชพเชฅเซ‡ เชšเชฟเชนเซเชจเชฟเชค เชฅเชฏเซ‡เชฒ เช›เซ‡.

เชธเซเช•เซเชฐเซ€เชจ เชถเซ€เชฐเซเชทเช•เชฎเชพเช‚ เชธเช‚เชฆเชฐเซเชญ เชฎเซ‡เชจเซ‚ เช…เชจเซ‡ เช—เซ‡เชฒเซ‡เชฐเซ€เช“ เช…เชจเซ‡ เชธเซ‚เชšเชฟเช“เชฎเชพเช‚ เชฒเชพเช‚เชฌเชพ-เช•เซเชฒเชฟเช• เช•เชฐเซ‹

เช•เซ‹เชถเซ‡เช‡เชจเซเช‚ เชฎเซƒเชคเซเชฏเซ เชญเชฒเชพเชฎเชฃเซ‹เชจเซ€ เชธเซ‚เชšเชฟเชฎเชพเช‚ เช›เซ‡ (เชถเซเช‚ เชฏเซเชŸเซเชฏเซเชฌเชจเซ‡ เชนเซ‚เช‚เชซเชพเชณเซเช‚ เช…เชจเซ‡ เชธเชฒเชพเชฎเชค เชฌเชจเชพเชตเชตเซเช‚ เชถเช•เซเชฏ เช›เซ‡?) เช•เซ‹เชถเซ‡เช‡เชจเซเช‚ เชฎเซƒเชคเซเชฏเซ เชญเชฒเชพเชฎเชฃเซ‹เชจเซ€ เชธเซ‚เชšเชฟเชฎเชพเช‚ เช›เซ‡ (เชถเซเช‚ เชฏเซเชŸเซเชฏเซเชฌเชจเซ‡ เชนเซ‚เช‚เชซเชพเชณเซเช‚ เช…เชจเซ‡ เชธเชฒเชพเชฎเชค เชฌเชจเชพเชตเชตเซเช‚ เชถเช•เซเชฏ เช›เซ‡?) เช•เซ‹เชถเซ‡เช‡เชจเซเช‚ เชฎเซƒเชคเซเชฏเซ เชญเชฒเชพเชฎเชฃเซ‹เชจเซ€ เชธเซ‚เชšเชฟเชฎเชพเช‚ เช›เซ‡ (เชถเซเช‚ เชฏเซเชŸเซเชฏเซเชฌเชจเซ‡ เชนเซ‚เช‚เชซเชพเชณเซเช‚ เช…เชจเซ‡ เชธเชฒเชพเชฎเชค เชฌเชจเชพเชตเชตเซเช‚ เชถเช•เซเชฏ เช›เซ‡?) เช•เซ‹เชถเซ‡เช‡เชจเซเช‚ เชฎเซƒเชคเซเชฏเซ เชญเชฒเชพเชฎเชฃเซ‹เชจเซ€ เชธเซ‚เชšเชฟเชฎเชพเช‚ เช›เซ‡ (เชถเซเช‚ เชฏเซเชŸเซเชฏเซเชฌเชจเซ‡ เชนเซ‚เช‚เชซเชพเชณเซเช‚ เช…เชจเซ‡ เชธเชฒเชพเชฎเชค เชฌเชจเชพเชตเชตเซเช‚ เชถเช•เซเชฏ เช›เซ‡?)

เชตเชฟเชกเชฟเชฏเซ‹ เช•เซ‡ เชชเซเชฒเซ‡เชฒเชฟเชธเซเชŸเชจเซเช‚ เชจเชพเชฎ เช…เชฅเชตเชพ เชธเชฐเชจเชพเชฎเซเช‚ เชตเซเชฏเซเชˆเช‚เช— เชธเซเช•เซเชฐเซ€เชจเชฎเชพเช‚ เช…เชฅเชตเชพ เช•เซ‹เชˆเชชเชฃ เชฒเชฟเชธเซเชŸเชฎเชพเช‚ เช•เซ‰เชชเชฟ เช•เชฐเซ‹.

เชเชกเชชเซ€ เชถเชฐเซ‚เช†เชค - เชญเชฒเชพเชฎเชฃ เช•เชฐเซ‡เชฒ เชšเซ‡เชจเชฒเซ‹ เช…เชจเซ‡ เชชเซเชฒเซ‡เชฒเชฟเชธเซเชŸ เช‰เชฎเซ‡เชฐเซ‹

เช•เซ‹เชถเซ‡เช‡เชจเซเช‚ เชฎเซƒเชคเซเชฏเซ เชญเชฒเชพเชฎเชฃเซ‹เชจเซ€ เชธเซ‚เชšเชฟเชฎเชพเช‚ เช›เซ‡ (เชถเซเช‚ เชฏเซเชŸเซเชฏเซเชฌเชจเซ‡ เชนเซ‚เช‚เชซเชพเชณเซเช‚ เช…เชจเซ‡ เชธเชฒเชพเชฎเชค เชฌเชจเชพเชตเชตเซเช‚ เชถเช•เซเชฏ เช›เซ‡?) เช•เซ‹เชถเซ‡เช‡เชจเซเช‚ เชฎเซƒเชคเซเชฏเซ เชญเชฒเชพเชฎเชฃเซ‹เชจเซ€ เชธเซ‚เชšเชฟเชฎเชพเช‚ เช›เซ‡ (เชถเซเช‚ เชฏเซเชŸเซเชฏเซเชฌเชจเซ‡ เชนเซ‚เช‚เชซเชพเชณเซเช‚ เช…เชจเซ‡ เชธเชฒเชพเชฎเชค เชฌเชจเชพเชตเชตเซเช‚ เชถเช•เซเชฏ เช›เซ‡?) => เช•เซ‹เชถเซ‡เช‡เชจเซเช‚ เชฎเซƒเชคเซเชฏเซ เชญเชฒเชพเชฎเชฃเซ‹เชจเซ€ เชธเซ‚เชšเชฟเชฎเชพเช‚ เช›เซ‡ (เชถเซเช‚ เชฏเซเชŸเซเชฏเซเชฌเชจเซ‡ เชนเซ‚เช‚เชซเชพเชณเซเช‚ เช…เชจเซ‡ เชธเชฒเชพเชฎเชค เชฌเชจเชพเชตเชตเซเช‚ เชถเช•เซเชฏ เช›เซ‡?)

เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชคเชฐเชค เชœ เช‰เชชเชฐเชจเชพ เชธเซเช•เซเชฐเซ€เชจเชถเซ‰เชŸเซเชธ เชœเซ‡เชตเซ€ เชฆเซ‡เช–เชพเชถเซ‡.

เชฌเชฟเชจเชœเชฐเซ‚เชฐเซ€ เชšเซ‡เชจเชฒเซ‹ เช…เชจเซ‡ เชชเซเชฒเซ‡เชฒเชฟเชธเซเชŸ เชธเซ‡เชŸเชฟเช‚เช—เซเชธเชฎเชพเช‚ เชฌเช‚เชง เช…เชฅเชตเชพ เช•เชพเชขเซ€ เชถเช•เชพเชฏ เช›เซ‡.

เชธเซเชฅเชพเชชเชจ

เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชชเซƒเชทเซเช : https://github.com/sadr0b0t/yashlang/
เช…เช‚เช—เซเชฐเซ‡เชœเซ€ เชฎเชพเช‚: https://github.com/sadr0b0t/yashlang/blob/master/README.en.md
เชชเซเชฐเช•เชพเชถเชจ: https://github.com/sadr0b0t/yashlang/releases

  • เชคเซ‡ Google Play เชชเชฐ เชจเชฅเซ€ เช…เชจเซ‡ เชจเชœเซ€เช•เชจเชพ เชญเชตเชฟเชทเซเชฏเชฎเชพเช‚ เชชเชฃ เชจเชนเซ€เช‚ เชนเซ‹เชฏ (Google เช เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชชเชฐ เชชเซเชฐเชคเชฟเชฌเช‚เชง เชฎเซ‚เช•เซ‡ เช›เซ‡ เชœเซ‡ API เชจเซ‡ เชฌเชพเชฏเชชเชพเชธ เช•เชฐเซ‡ เช›เซ‡ เช…เชจเซ‡ เช‰เชฒเซเชฒเซ‡เช–เชฟเชค เชšเซ‡เชจเชฒ เชตเซเชนเชพเช‡เชŸเชฒเชฟเชธเซเชŸ เช…เชฅเชตเชพ เชจเซเชฏเซ‚เชชเชพเช‡เชช เชชเซเชฒเซ‡เชฏเชฐ เชธเชนเชฟเชค เชคเซ‡เชฎเชจเซ€ เชตเซ‡เชฌเชธเชพเช‡เชŸเชจเซ‡ เชชเชพเชฐเซเชธ เช•เชฐเซ‡ เช›เซ‡)
  • เชธเซเชคเซเชฐเซ‹เชคเซ‹เชฎเชพเช‚เชฅเซ€ เชฌเชจเชพเชตเซ‹: https://github.com/sadr0b0t/yashlang/
  • เชชเซเชฐเช•เชพเชถเชจ เชตเชฟเชญเชพเช—เชฎเชพเช‚เชฅเซ€ apk เชกเชพเช‰เชจเชฒเซ‹เชก เช•เชฐเซ‹: https://github.com/sadr0b0t/yashlang/releases
  • เชฎเชจเซ‡ เช†เชถเชพ เช›เซ‡ เช•เซ‡ เชคเซ‡ เชฅเซ‹เชกเชพ เชธเชฎเชฏ เชชเช›เซ€ เช•เซ‡เชŸเชฒเซ‹เช—เชฎเชพเช‚ เชฆเซ‡เช–เชพเชถเซ‡ เชเชซ-เชกเซเชฐเซ‹เช‡เชก (เช‰เชฎเซ‡เชฐเชตเชพ เชฎเชพเชŸเซ‡เชจเซ€ เช…เชฐเชœเซ€ เชฎเช‚เชœเซ‚เชฐ เชฅเชˆ เชนเซ‹เชฏ เชคเซ‡เชตเซเช‚ เชฒเชพเช—เซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เชฒเช—เชญเช— เชเช• เชฎเชนเชฟเชจเชพเชฅเซ€ เช†เช—เชณ เชตเชงเซเชฏเซเช‚ เชจเชฅเซ€), เชชเชฐเช‚เชคเซ เชนเชœเซ€ เชธเซเชงเซ€ เชจเชฅเซ€

เชงเซเชฏเชพเชจเชฎเชพเช‚ เชฐเชพเช–เซ‹ เช•เซ‡ เชเช• เชœ เช‰เชชเช•เชฐเชฃ เชชเชฐ เชตเชฟเชตเชฟเชง เชธเซเชฐเซ‹เชคเซ‹เชฎเชพเช‚เชฅเซ€ เชตเชฟเชตเชฟเชง เชธเช‚เชธเซเช•เชฐเชฃเซ‹ เชตเชšเซเชšเซ‡ เชธเซเชตเชฟเชš เช•เชฐเชตเซเช‚ เช apk เชซเชพเช‡เชฒเชจเชพ เชœเซเชฆเชพ เชœเซเชฆเชพ เชนเชธเซเชคเชพเช•เซเชทเชฐเซ‹เชจเซ‡ เช•เชพเชฐเชฃเซ‡ เช•เชพเชฎ เช•เชฐเชถเซ‡ เชจเชนเซ€เช‚; เชจเชตเชพ เชธเซเชฐเซ‹เชคเชฎเชพเช‚เชฅเซ€ เชธเช‚เชธเซเช•เชฐเชฃ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเชคเชพ เชชเชนเซ‡เชฒเชพ, เชคเชฎเชพเชฐเซ‡ เชชเชนเซ‡เชฒเชพ เชกเซ‡เชŸเชพ เชธเชพเชฅเซ‡ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‡เชฒ เชธเช‚เชธเซเช•เชฐเชฃเชจเซ‡ เช•เชพเชขเซ€ เชจเชพเช–เชตเซเช‚ เชชเชกเชถเซ‡ - เชชเซเชฒเซ‡เชฒเชฟเชธเซเชŸ เช•เซ‡เชถ เช…เชจเซ‡ เชฌเซเชฐเชพเช‰เชเชฟเช‚เช— เช‡เชคเชฟเชนเชพเชธ (เช…เชฅเชตเชพ เชกเซ‡เชŸเชพ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชŸเซเชฐเชพเชจเซเชธเชซเชฐ เช•เชฐเชตเซ‹ เชคเซ‡ เช†เช•เซƒเชคเชฟ).

เชคเช•เชจเซ€เช•เซ€ เชตเชฟเช—เชคเซ‹

Google/YouTube เชเช•เชพเช‰เชจเซเชŸเชจเซ€ เชœเชฐเซ‚เชฐ เชจเชฅเซ€, เชคเชฎเชพเชฐเซ‡ เชซเช•เซเชค เช‡เชจเซเชŸเชฐเชจเซ‡เชŸเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡, เชจเซ€เชšเซ‡เชจเซ€ เชฒเชพเช‡เชฌเซเชฐเซ‡เชฐเซ€เช“เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡:

เช“เชชเชจ เชธเซ‹เชฐเซเชธ, เชฎเชซเชค GPLv3 เชฒเชพเช‡เชธเชจเซเชธ.

เชชเซเชฐเชถเซเชจ: เชถเซเช‚ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ เชฒเซ‡เช–เช•เซ‹เชจเซ€ เชชเชฐเชตเชพเชจเช—เซ€ เชตเชฟเชจเชพ (เช…เชฅเชตเชพ เชธเซเชชเชทเซเชŸ เชชเซเชฐเชคเชฟเชฌเช‚เชง เชธเชพเชฅเซ‡) เชตเซ‡เชฌเชธเชพเชˆเชŸเชจเซ‡ เช‰เชเชฐเชกเชพ เช•เชฐเชตเซ€ เช•เชพเชฏเชฆเซ‡เชธเชฐ เช›เซ‡? Google Google Play เชฎเชพเช‚เชฅเซ€ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเซ‹ เชฆเซ‚เชฐ เช•เชฐเซ‡ เช›เซ‡, เชœเซ‡เช“ เชคเซ‡เชฎเชจเชพ API เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชคเชพ เชจเชฅเซ€, เชชเชฐเช‚เชคเซ เชคเซ‡เชฎเชจเซ€ เชธเชพเช‡เชŸเซเชธเชจเซ‡ เชชเชพเชฐเซเชธ เช•เชฐเซ‡ เช›เซ‡, เช•เชพเชฐเชฃ เช•เซ‡ เชคเซ‡เช“ เชคเซ‡เชฎเชจเชพ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เช•เชฐเชพเชฐเชจเซเช‚ เช‰เชฒเซเชฒเช‚เช˜เชจ เช•เชฐเซ‡ เช›เซ‡.
เชœเชตเชพเชฌ: เช…เชฒเชฌเชคเซเชค, เชคเซ‡ เช•เชพเชฏเชฆเซ‡เชธเชฐ เช›เซ‡, เชธเชพเชฐเซเชตเชœเชจเชฟเช• เชฐเซ€เชคเซ‡ เช‰เชชเชฒเชฌเซเชง เชฎเชพเชนเชฟเชคเซ€ เชตเชพเช‚เชšเชตเชพ เชฎเชพเชŸเซ‡ เช•เชฏเชพ เชธเชพเชงเชจเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเซ‹ เชคเซ‡ เชคเชฎเชพเชฐเชพ เชชเชฐ เช›เซ‡. เชตเชงเซเชฎเชพเช‚: เชฏเซเชเชธ เช•เซ‹เชฐเซเชŸเซ‡ เชตเซ‡เชฌเชธเชพเชˆเชŸ เชธเซเช•เซเชฐเซ‡เชชเชฟเช‚เช—เชจเซ‡ เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เช•เชพเชฏเชฆเซ‡เชธเชฐ เชฌเชจเชพเชตเซเชฏเซเช‚ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡เชจเซ€ เชธเชพเชฅเซ‡ เชŸเซ‡เช•เชจเชฟเช•เชฒ เชนเชธเซเชคเช•เซเชทเซ‡เชช เชชเชฐ เชชเซเชฐเชคเชฟเชฌเช‚เชง เชฎเซ‚เช•เซเชฏเซ‹ เช›เซ‡., เชชเชฐเช‚เชคเซ เช—เซเชฒเชจเซ‹ เช…เชญเชฟเชชเซเชฐเชพเชฏ เช…เชฒเช— เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡; เช…เช‚เช—เชค เชฐเซ€เชคเซ‡, เชฎเชจเซ‡ เชนเชœเซ เชธเซเชงเซ€ เชคเซ‡เชฎเชจเซ‡ เชฎเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เช…เชฎเซ‡เชฐเชฟเช•เชจ เช•เซ‹เชฐเซเชŸเชฎเชพเช‚ เชœเชตเชพเชจเซ€ เชˆเชšเซเช›เชพ เชจเชฅเซ€.

เช•เซ‡เชŸเชฒเชพเช• เช•เซ‹เชก

เชชเซเชธเซเชคเช•เชพเชฒเชฏ เชจเซเชฏเซ‚ เชชเชพเช‡เชช เชเช•เซเชธเชŸเซเชฐเซ‡เช•เซเชŸเชฐ - เชชเซเชฒเซ‡เชฏเชฐ เชธเชชเซ‹เชฐเซเชŸ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชจเซเชฏเซ เชชเชพเช‡เชช, เชคเชฎเชจเซ‡ เชšเซ‹เช•เซเช•เชธ เชšเซ‡เชจเชฒ เช…เชฅเชตเชพ เชชเซเชฒเซ‡เชฒเชฟเชธเซเชŸ เชฎเชพเชŸเซ‡ เชตเชฟเชกเชฟเช“เชเชจเซ€ เชธเซ‚เชšเชฟ เชกเชพเช‰เชจเชฒเซ‹เชก เช•เชฐเชตเชพ, เชชเซเชฐเช–เซเชฏเชพเชค เชตเชฟเชกเชฟเช“ เชตเชฟเชถเซ‡ เชตเชฟเช—เชคเชตเชพเชฐ เชฎเชพเชนเชฟเชคเซ€ เชกเชพเช‰เชจเชฒเซ‹เชก เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡ (เชตเชฟเชกเชฟเชฏเซ‹เชจเชพ เชตเซ‡เชฌ เชชเซƒเชทเซเช  เชชเชฐ เชถเซเช‚ เชฆเซƒเชถเซเชฏเชฎเชพเชจ เช›เซ‡), เชตเชฟเชกเชฟเช“ เช†เช‡เช•เซ‹เชจเชจเซเช‚ เชธเชฐเชจเชพเชฎเซเช‚ เชฎเซ‡เชณเชตเซ‹ เช…เชจเซ‡ เชตเชฟเชกเชฟเช“เชจเซเช‚ เชธเชฐเชจเชพเชฎเซเช‚ เชชเชฃ เชฎเซ‡เชณเชตเซ€ เชถเช•เซ‹ เช›เซ‹. เชชเซเชฐเชตเชพเชน

เชชเซเชฒเซ‡เชฒเชฟเชธเซเชŸ เชฒเซ‹เชก เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡เชจเซ‹ เช•เซ‹เชก เชฅเซ‹เชกเซ‹ เชฌเซ‹เชœเชพเชฐเซ‚เชช เช›เซ‡, เชคเซ‡เชฅเซ€ เชนเซเช‚ เชคเซ‡เชจเซ‡ เช…เชนเซ€เช‚ เช†เชชเซ€เชถ เชจเชนเซ€เช‚, เชฐเชธ เชงเชฐเชพเชตเชคเชพ เชฒเซ‹เช•เซ‹ เชฎเชพเชŸเซ‡, เชธเซเชฐเซ‹เชค เช•เซ‹เชก เชชเชฐ เชเช• เชจเชœเชฐ เชจเชพเช–เซ‹, เชคเซ‡ เชฎเซ‚เชณเชญเซ‚เชค เชฐเซ€เชคเซ‡ เชเช• เชตเชฐเซเช— เช›เซ‡ เชธเชพเชฎเช—เซเชฐเซ€ เชฒเซ‹เชกเชฐ.

เชšเชพเชฒเซ‹ เชœเซ‹เชˆเช เช•เซ‡ เชธเชพเชฐเซเชตเชœเชจเชฟเช• เชตเชฟเชกเชฟเช“ เชชเซƒเชทเซเช เชจเชพ เชธเชฐเชจเชพเชฎเชพเช‚เชฎเชพเช‚เชฅเซ€ เชตเชฟเชกเชฟเช“ เชธเซเชŸเซเชฐเซ€เชฎเชจเซเช‚ เชธเชฐเชจเชพเชฎเซเช‚ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฎเซ‡เชณเชตเชตเซเช‚ เช…เชจเซ‡ เชคเซ‡เชจเซ‡ เชชเซเชฒเซ‡เชฏเชฐเชฎเชพเช‚ เชšเชฒเชพเชตเชตเซเช‚.

เชฒเชพเช‡เชฌเซเชฐเซ‡เชฐเซ€เชจเซ‡ เชธเชพเชฅเซ‡ เชœเซ‹เชกเซ‹
app/build.gradle

dependencies {
...
    // NewPipe: youtube parser
    // https://github.com/TeamNewPipe/NewPipeExtractor
    implementation "com.github.TeamNewPipe:NewPipeExtractor:v0.17.4"
...
}

เชคเซ‡ เชตเชฟเชšเชฟเชคเซเชฐ เช›เซ‡ เช•เซ‡ เช† เชชเช›เซ€ เชคเชฎเซ‡ เชนเชœเซ€ เชชเชฃ เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เชถเซ‹ เชจเชนเซ€เช‚, เช•เชพเชฐเชฃ เช•เซ‡... เช‰เชฆเชพเชนเชฐเชฃเซ‹ เช—เซเชฎ เชฅเชฏเซ‡เชฒ เชกเชพเช‰เชจเชฒเซ‹เชกเชฐ เชตเชฐเซเช— เชตเชฟเชถเซ‡ เชซเชฐเชฟเชฏเชพเชฆ เช•เชฐเชถเซ‡. เชคเซ‡ เชธเซเชตเชฏเช‚เชธเช‚เชšเชพเชฒเชฟเชค เชชเชฐเซ€เช•เซเชทเชฃ เชจเชฟเชฐเซเชฆเซ‡เชถเชฟเช•เชพเชฎเชพเช‚เชฅเซ€ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชฎเชพเช‚ เช•เซ‰เชชเชฟ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡ NewPipeExtractor/extractor/src/test/java/org/schabi/newpipe/Downloader.java - เชธเช‚เชธเซเช•เชฐเชฃ 0.17.4 เชฎเชพเชŸเซ‡ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡ (เชเชตเซเช‚ เชฒเชพเช—เซ‡ เช›เซ‡ เช•เซ‡ เช† เชญเชพเช— เชฒเชพเช‡เชฌเซเชฐเซ‡เชฐเซ€เชจเชพ เชจเชตเชพ เชธเช‚เชธเซเช•เชฐเชฃเชฎเชพเช‚ เชซเชฐเซ€เชฅเซ€ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เชนเชคเซ‹, เชชเชฐเช‚เชคเซ เช…เชฎเชพเชฐเซ‡ เชนเชœเซ€ เชคเชชเชพเชธ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡).

YouTube เชตเซ‡เชฌเชธเชพเช‡เชŸ เชชเชฐเชจเชพ เชตเชฟเชกเชฟเชฏเซ‹ เชชเซƒเชทเซเช เชจเชพ เชธเชฐเชจเชพเชฎเชพ เชฆเซเชตเชพเชฐเชพ เชตเชฟเชกเชฟเช“ เชธเซเชŸเซเชฐเซ€เชฎเชจเซเช‚ เชธเชฐเชจเชพเชฎเซเช‚ เชฎเซ‡เชณเชตเซ‹:

app/src/main/java/su/sadrobot/yashlang/controller/ContentLoader.java

    public String extractYtStreamUrl(final String ytVidUrl) throws ExtractionException, IOException {
        // https://github.com/TeamNewPipe/NewPipeExtractor/blob/dev/extractor/src/test/java/org/schabi/newpipe/extractor/services/youtube/YoutubeStreamExtractorDefaultTest.java
        NewPipe.init(Downloader.getInstance(), new Localization("GB", "en"));
        final YoutubeStreamExtractor extractor = (YoutubeStreamExtractor) YouTube
                .getStreamExtractor(ytVidUrl);
        extractor.fetchPage();
        final String streamUrl = extractor.getVideoStreams().size() > 0 ? extractor.getVideoStreams().get(0).getUrl() : null;
//        for (final VideoStream stream : extractor.getVideoStreams()) {
//            stream.getUrl();
//        }
        return streamUrl;
    }

เชตเชฟเชกเชฟเช“ เชธเชฐเชจเชพเชฎเซเช‚ ytVidUrl เช YouTube เชตเซ‡เชฌเชธเชพเช‡เชŸ เชชเชฐ เช•เซ‹เชˆเชชเชฃ เชตเชฟเชกเชฟเช“เชจเชพ เชชเซƒเชทเซเช เชจเซเช‚ เชœเชพเชนเซ‡เชฐ เชธเชฐเชจเชพเชฎเซเช‚ เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡ https://www.youtube.com/watch?v=pd2RlatmNRk

เช–เซ‡เชฒเชพเชกเซ€ เช•เชฐเชถเซ‡ เชเช•เซเชธเซ‹เชชเซเชฒเซ‡เชฏเชฐ เช—เซ‚เช—เชฒเชฎเชพเช‚เชฅเซ€ เชœ. เช† YouTube เชชเชฐ เชตเซ‡เชฌ เชฐเซ‡เชชเชฐ เชจเชฅเซ€, เชชเชฐเช‚เชคเซ เช•เซ‹เชˆเชชเชฃ เชตเชฟเชกเชฟเช“ เชšเชฒเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชเช• เชตเชพเชธเซเชคเชตเชฟเช• เชเชฎเซเชฌเซ‡เชกเซ‡เชก เชชเซเชฒเซ‡เชฏเชฐ เช›เซ‡, เชคเชฆเซเชฆเชจ เชฒเชตเชšเซ€เช• เช…เชจเซ‡ เช•เชธเซเชŸเชฎเชพเช‡เช เช•เชฐเซ€ เชถเช•เชพเชฏ เชคเซ‡เชตเซเช‚. เชœเซ‹ เชคเชฎเซ‡ เชคเซ‡เชจเซ‡ เชฏเซ‹เช—เซเชฏ เชธเชฐเชจเชพเชฎเซเช‚ เช†เชชเซ‹ เชคเซ‹ เชคเซ‡ YouTube เชชเชฐเชฅเซ€ เชตเชฟเชกเชฟเชฏเซ‹ เชธเซเชŸเซเชฐเซ€เชฎ เชชเชฃ เชšเชฒเชพเชตเซ€ เชถเช•เซ‡ เช›เซ‡. เช…เชฎเชจเซ‡ เชนเชฎเชฃเชพเช‚ เชœ เชธเซเชŸเซเชฐเซ€เชฎเชจเซเช‚ เชธเชฐเชจเชพเชฎเซเช‚ เชฎเชณเซเชฏเซเช‚ เช›เซ‡, เชคเซ‹ เชšเชพเชฒเซ‹ เชœเซ‹เชˆเช เช•เซ‡ เชคเซ‡เชจเซ‡ เชชเซเชฒเซ‡เชฏเชฐเชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฎเซ‹เช•เชฒเชตเซเช‚.

เชฒเชพเช‡เชฌเซเชฐเซ‡เชฐเซ€เชจเซ‡ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชธเชพเชฅเซ‡ เช•เชจเซ‡เช•เซเชŸ เช•เชฐเซ‹ app/build.gradle:

dependencies {
...
    // google Exoplayer
    // https://github.com/google/ExoPlayer
    // https://exoplayer.dev/
    implementation 'com.google.android.exoplayer:exoplayer:2.10.8'
...
}

เช…เชฎเซ‡ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชธเซเช•เซเชฐเซ€เชจ เชชเชฐ เชชเซเชฒเซ‡เชฏเชฐ เช˜เชŸเช• เชฎเซ‚เช•เชตเชพเชจเซ€ เชคเชฎเชพเชฎ เช˜เซ‹เช‚เช˜เชพเชŸเชจเซ‡ เชงเซเชฏเชพเชจเชฎเชพเช‚ เชฒเชˆเชถเซเช‚ เชจเชนเซ€เช‚ (เชคเชฎเซ‡ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชตเซ‡เชฌเชธเชพเช‡เชŸ เชชเชฐ เช…เชฅเชตเชพ เช•เซ‹เชกเชฎเชพเช‚ เช‰เชฆเชพเชนเชฐเชฃเซ‹ เชœเซ‹เชˆ เชถเช•เซ‹ เช›เซ‹), เช…เชฎเซ‡ เชซเช•เซเชค เชชเซเชฒเซ‡เชฏเชฐเชฎเชพเช‚ YouTube เชชเชฐเชฅเซ€ เชตเชฟเชกเชฟเช“ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชšเชฒเชพเชตเชตเชพเชจเซเช‚ เชถเชฐเซ‚ เช•เชฐเชตเซเช‚ เชคเซ‡ เชœเซ‹เชˆเชถเซเช‚. เช‰เชชเชฐ เชชเซเชฐเชพเชชเซเชค เชธเชฐเชจเชพเชฎเซเช‚:

app/src/main/java/su/sadrobot/yashlang/WatchVideoActivity.java

private void playVideoStream(final String streamUrl, final long seekTo) {
    if (streamUrl == null) {
        // ะพัั‚ะฐะฝะพะฒะธั‚ัŒ ะฟั€ะพะธะณั€ั‹ะฒะฐะฝะธะต ั‚ะตะบัƒั‰ะตะณะพ ั€ะพะปะธะบะฐ, ะตัะปะธ ะฑั‹ะป ะทะฐะณั€ัƒะถะตะฝ
        videoPlayerView.getPlayer().stop(true);
    } else {
        // https://exoplayer.dev/
        // https://github.com/google/ExoPlayer

        final Uri mp4VideoUri = Uri.parse(streamUrl);
        final MediaSource videoSource = new ProgressiveMediaSource.Factory(videoDataSourceFactory)
                .createMediaSource(mp4VideoUri);

        // ะŸะพัั‚ะฐะฒะธะผ ะฝะฐ ะฟะฐัƒะทัƒ ัั‚ะฐั€ะพะต ะฒะธะดะตะพ, ะฟะพะบะฐ ะณะพั‚ะพะฒะธะผ ะฝะพะฒะพะต
        if (videoPlayerView.getPlayer().getPlaybackState() != Player.STATE_ENDED) {
            // ะ•ัะปะธ ัั‚ะฐะฒะธั‚ัŒ ะฝะฐ ะฟะฐัƒะทัƒ ะทะดะตััŒ ะฟะพัะปะต ั‚ะพะณะพ, ะบะฐะบ ะฟะปะตะตั€ ะฒัั‚ะฐะป ะฝะฐ ะฟะฐัƒะทัƒ ัะฐะผ, ะทะฐะบะพะฝั‡ะธะฒ
            // ะธะณั€ะฐั‚ัŒ ะฒะธะดะตะพ, ะฟะพะปัƒั‡ะธะผ ะทะดะตััŒ ะฒั‚ะพั€ะพะต ัะพะฑั‹ั‚ะธะต STATE_ENDED, ะฟะพัั‚ะพะผัƒ ะฝะฐะผ ะฝัƒะถะฝะฐ ะทะดะตััŒ
            // ัะฟะตั†ะธะฐะปัŒะฝะฐั ะฟั€ะพะฒะตั€ะบะฐ.
            // ะŸั€ะธ ัั‚ะพะผ ะทะฝะฐั‡ะตะฝะธะต getPlayWhenReady() ะพัั‚ะฐะฝะตั‚ัั true, ะฟะพัั‚ะพะผัƒ ะฟั€ะพะฒะตั€ัะตะผ ะธะผะตะฝะฝะพ ัะพัั‚ะพัะฝะธะต.
            // https://github.com/google/ExoPlayer/issues/2272
            videoPlayerView.getPlayer().setPlayWhenReady(false);
        }

        // Prepare the player with the source.
        ((SimpleExoPlayer) videoPlayerView.getPlayer()).prepare(videoSource);

        // ะฃะบะฐะถะตะผ ั‚ะตะบัƒั‰ัƒัŽ ะฟะพะทะธั†ะธัŽ ัั€ะฐะทัƒ ะฟั€ะธ ะทะฐะณั€ัƒะทะบะต ะฒะธะดะตะพ
        // (ะฒ ะบะพะผะตะฝั‚ะฐั… ั‡ั‚ะพ-ั‚ะพ ะฟะธัˆัƒั‚ ั‡ั‚ะพ-ั‚ะพ ะฟั€ะพ ะดะฐั‚ะฐัะพั€ัั‹, ะบะพั‚ะพั€ั‹ะต ะฟะพะดะดะตั€ะถะธะฒะฐัŽั‚ ะธะปะธ ะฝะต ะฟะพะดะดะตั€ะถะธะฒะฐัŽั‚
        // ะฟะตั€ะตั…ะพะดั‹ seek ะฟั€ะธ ะทะฐะณั€ัƒะทะบะต, ะฟะพั…ะพะถะต, ั‡ั‚ะพ ัั‚ะพ ั„ะธะณะฝั - ะฟั€ะพัั‚ะพ ะดะตะปะฐะตะผ seek ัั€ะฐะทัƒ ะฟะพัะปะต ะทะฐะณั€ัƒะทะบะธ)
        // Exoplayer plays new Playlist from the beginning instead of provided position
        // https://github.com/google/ExoPlayer/issues/4375
        // How to load stream in the desired position? #2197
        // https://github.com/google/ExoPlayer/issues/2197
        // ะฒ ัั‚ะพะผ ะผะตัั‚ะต ะฝะพั€ะผะปะฐัŒะฝั‹ะน duration ะตั‰ะต ะฝะต ะดะพัั‚ัƒะฟะตะฝ, ะฟะพัั‚ะพะผัƒ ะตะณะพ ะฝะต ะฟั€ะพะฒะตั€ัะตะผ
        //if(seekTo > 0 && seekTo < videoPlayerView.getPlayer().getDuration()) {
        if (seekTo > 0) {
            // ะฝะฐ 5 ัะตะบัƒะฝะด ั€ะฐะฝัŒัˆะต
            videoPlayerView.getPlayer().seekTo(seekTo - 5000 > 0 ? seekTo - 5000 : 0);
        }
        videoPlayerView.getPlayer().setPlayWhenReady(true);
    }
}

เชœเชพเชฃเซ€เชคเชพ เชฎเซเชฆเซเชฆเชพเช“

  • เชคเชฎเชพเชฐเชพ Google/YouTube เชเช•เชพเช‰เชจเซเชŸเชฎเชพเช‚ เชฒเซ‰เช—เชฟเชจ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชนเซ‹เชฏ เชคเซ‡เชตเชพ เชตเชฏ เชชเซเชฐเชคเชฟเชฌเช‚เชงเซ‹ เชธเชพเชฅเซ‡ เชตเชฟเชกเชฟเช“ เชšเชฒเชพเชตเชถเซ‡ เชจเชนเซ€เช‚

เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡: เช‡เชฒเซเชฏเชพ เชฎเซเชฐเซ‹เชฎเซ‡เชŸเซเชธ, เชฎเซ‹เชธเชซเชฟเชฒเซเชฎ เชธเชฟเชจเซ‡เชฎเชพ เชšเชฟเช‚เชคเชพ, เชฐเซเชธเชฒเชพเชจ เช…เชจเซ‡ เชฒเซเชฏเซเชกเชฎเชฟเชฒเชพ เชซเชฟเชฒเซเชฎ 1, เชฎเซ‹เชธเชซเชฟเชฒเซเชฎ เชซเชฟเชฒเซเชฎ เชšเชฟเช‚เชคเชพ

เชธเชฒเชพเชน: เช†เชตเชพ เชตเซ€เชกเชฟเชฏเซ‹เชจเซ‡ เชฌเซเชฒเซ‡เช•เชฒเชฟเชธเซเชŸเชฎเชพเช‚ เช‰เชฎเซ‡เชฐเซ‹ เช…เชฅเชตเชพ เชตเซ€เชกเชฟเชฏเซ‹เชจเชพ เชฒเซ‡เช–เช•เชจเซ‡ เชญเซ‚เชฒเชฅเซ€ เชธเซ‡เชŸ เช•เชฐเซ‡เชฒเชพ เชชเซเชฐเชคเชฟเชฌเช‚เชงเชจเซ‡ เชฆเซ‚เชฐ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช•เชนเซ‹.

  • เช•เซ‡เชŸเชฒเชพเช• เชฌเซเชฐเซ‹เชกเช•เชพเชธเซเชŸ เชตเชฟเชกเชฟเช“เช เช•เซ‡ เชœเซ‡เชจเชพ เชฎเชพเชŸเซ‡ เชธเซ‡เชตเชพ เชถเซ‚เชจเซเชฏ เชฒเช‚เชฌเชพเชˆ เช†เชชเซ‡ เช›เซ‡ เชคเซ‡ เชšเชพเชฒเชถเซ‡ เชจเชนเซ€เช‚ (เช†เชตเชพ เชตเชฟเชกเชฟเช“เช เชฎเชพเชŸเซ‡, เชธเซ‚เชšเชฟเช“ เช…เชจเซ‡ เช—เซ‡เชฒเซ‡เชฐเซ€เชฎเชพเช‚ เชธเชฎเชฏเช—เชพเชณเซ‹ "[dur undef]" เชคเชฐเซ€เช•เซ‡ เชšเชฟเชนเซเชจเชฟเชค เชฅเชฏเซ‡เชฒ เช›เซ‡)

เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡: เชคเซ‡ เชฎเชพเชŸเซ‡ เชฐเชพเชน เชœเซเช“! เชธเซ‹เชฏเซเชเชฎเชฒเซเชŸเชซเชฟเชฒเซเชฎ เชเชšเชกเซ€ (เชฌเชพเชณเช•เซ‹ เชฎเชพเชŸเซ‡เชจเชพ เช•เชพเชฐเซเชŸเซ‚เชจ), เชธเซ‹เชฏเซเชเชฎเซเชฒเซเชŸเชซเชฟเชฒเซเชฎ เชธเซเชŸเซเชกเชฟเชฏเซ‹เชจเชพ เช•เชพเชฐเซเชŸเซ‚เชจเชจเชพเช‚ เชคเชฎเชพเชฎ เชฎเซเชฆเซเชฆเชพ, เชŸเซ‹เชšเชจเชพ เช•เชพเชฐเซเชŸเซ‚เชจ เชธเซ‹เชฏเซเชเชฎเชฒเซเชŸเชซเชฟเชฒเซเชฎ, เชธเซ‹เชฏเซเชเชฎเซเชฒเซเชŸเชซเชฟเชฒเซเชฎ เชธเซเชŸเซเชกเชฟเชฏเซ‹เชจเชพ เช•เชพเชฐเซเชŸเซ‚เชจ

เชธเชฒเชพเชน: เชฌเซเชฒเซ‡เช•เชฒเชฟเชธเซเชŸเชฎเชพเช‚ เช†เชตเชพ เชตเซ€เชกเชฟเชฏเซ‹ เช‰เชฎเซ‡เชฐเซ‹.

  • เชตเชฟเชกเชฟเช“เช เช•เซ‡ เชœเซ‡ เชซเช•เซเชค เชธเซ€เชงเซ€ เชฒเชฟเช‚เช•เซเชธ เชฆเซเชตเชพเชฐเชพ เช‰เชชเชฒเชฌเซเชง เช›เซ‡ เชคเซ‡ เชธเซเชฅเชพเชจเชฟเช• เชชเซเชฒเซ‡เชฒเชฟเชธเซเชŸเชฎเชพเช‚ เชถเชพเชฎเซ‡เชฒ เชฅเชˆ เชถเช•เชถเซ‡ เชจเชนเซ€เช‚, เชญเชฒเซ‡ เชคเชฎเซ‡ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเชจเชพ เชคเชฎเชพเชฎ เชตเชฟเชกเชฟเช“เช เชกเชพเช‰เชจเชฒเซ‹เชก เช•เชฐเซ‹.

เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡: เชซเชพเชฏเชฐ เชเชชเชฟเชธเซ‹เชก 1เชจเซเช‚ เชŸเซ‡เชฎเชฟเช‚เช—, เชฎเซ‹เชธเชซเชฟเชฒเซเชฎ เชธเชฟเชจเซ‡เชฎเชพ เชšเชฟเช‚เชคเชพ

  • เชœเซ‹ เชคเชฎเซ‡ เช•เซ‹เชˆ เชธเชพเชฐเซเชตเชœเชจเชฟเช• เชตเชฟเชกเชฟเชฏเซ‹ เชชเชฐ เช†เชตเซ‹ เช›เซ‹ เชœเซ‡เชจเซ‡ เชฒเซ‰เช—เชฟเชจเชจเซ€ เชœเชฐเซ‚เชฐ เชจเชฅเซ€, เชฌเซเชฐเชพเช‰เชเชฐเชฎเชพเช‚ เชšเชพเชฒเซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เชชเซเชฒเซ‡เชฏเชฐเชฎเชพเช‚ เชšเชพเชฒเชคเซเช‚ เชจเชฅเซ€, เชคเซ‹ เชฌเช— เชฐเชฟเชชเซ‹เชฐเซเชŸ เชฎเซ‹เช•เชฒเซ‹ (เชคเซ‡ เชคเชฆเซเชฆเชจ เชถเช•เซเชฏ เช›เซ‡ เช•เซ‡ เชธเชฎเชธเซเชฏเชพ เชชเชนเซ‡เชฒเชพเชฅเซ€ เชœ เชจเชตเชพ เชธเช‚เชธเซเช•เชฐเชฃเชฎเชพเช‚ เช เซ€เช• เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡. เชจเซเชฏเซ‚ เชชเชพเช‡เชช เชเช•เซเชธเชŸเซเชฐเซ‡เช•เซเชŸเชฐ เช…เชจเซ‡ เชคเชฎเชพเชฐเซ‡ เชซเช•เซเชค เช† เชธเช‚เชธเซเช•เชฐเชฃ เชธเชพเชฅเซ‡ เชเชธเซ‡เชฎเซเชฌเชฒเซ€ เช…เชชเชกเซ‡เชŸ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชชเชกเชถเซ‡, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡).

  • เชœเซ‹ เชˆเชจเซเชŸเชฐเชจเซ‡เชŸ เชงเซ€เชฎเซเช‚ เชนเซ‹เชฏ เชคเซ‹ เชˆเชจเซเชŸเชฐเชซเซ‡เชธ เชงเซ€เชฎเซเช‚ เชฅเชˆ เชถเช•เซ‡ เช›เซ‡ (เชชเชฐเช‚เชคเซ เชฌเช‚เชง เชจเชฅเซ€)

เช…เช‚เชคเซ‡

เชฎเชพเชฐเซ‹ เชชเซเชคเซเชฐ เชŸเซ‡เชฌเซเชฒเซ‡เชŸเชฎเชพเช‚เชฅเซ€ เชธเซ‡เชฎเชธเช‚เช— เชธเซเชฎเชพเชฐเซเชŸ เชŸเซ€เชตเซ€ เชชเชฐ เช—เชฏเซ‹, เชœเซ‡ เชเชจเซเชกเซเชฐเซ‹เช‡เชก เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชšเชฒเชพเชตเซ€ เชถเช•เชคเซ‹ เชจเชฅเซ€. เชคเซ‡เชฅเซ€, เชถเซเชฐเซ‡เชทเซเช  เชชเซ‡เชฐเซ‡เช‚เชŸเชฒ เชจเชฟเชฏเช‚เชคเซเชฐเชฃ เชนเชœเซ เชชเชฃ เชตเซเชฏเช•เซเชคเชฟเช—เชค เช›เซ‡.

เชชเชฐเช‚เชคเซ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชฎเชพเชฐเชพ เชฎเชพเชŸเซ‡ เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชถเชฐเซ‚ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชชเซ‚เชฐเชคเซ€ เช…เชจเซเช•เซ‚เชณ เชนเซ‹เชตเชพเชจเซเช‚ เชฌเชนเชพเชฐ เช†เชตเซเชฏเซเช‚ เช›เซ‡. เชชเซเชฐเชพเชฐเช‚เชญเชฟเช• เช•เชพเชฐเซเชฏเช•เชพเชฐเซ€ เชธเช‚เชธเซเช•เชฐเชฃเซ‹เชฎเชพเช‚เชฅเซ€ เชชเซเชฐเชฅเชฎ เช›เชพเชช เช เชนเชคเซ€ เช•เซ‡ เชนเซเช‚ เชฌเซ€เชœเซ€ เชฆเซเชจเชฟเชฏเชพเชฎเชพเช‚ เช›เซเช‚. เชฌเชงเซ€ เชธเชพเชฎเช—เซเชฐเซ€ YouTube เชชเชฐเชฅเซ€ เชกเชพเช‰เชจเชฒเซ‹เชก เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เช† เชนเชตเซ‡ YouTube เชจเชฅเซ€, เชชเชฐเช‚เชคเซ เช•เช‚เชˆเช• เชฌเซ€เชœเซเช‚, เชธเชฒเชพเชฎเชค เช…เชจเซ‡ เชจเชฟเชฏเช‚เชคเซเชฐเชฟเชค เช›เซ‡, เชœเซ‡เชฎ เช•เซ‡ เชคเชฎเซ‡ เชคเชฎเชพเชฐเซ€ เช†เช‚เช–เชฎเชพเช‚เชฅเซ€ เชธเซ‡เชจเซเชŸเซ€เชชเซ‡เชก เช•เชพเชขเซ€เชจเซ‡ เช•เชพเชšเชจเซ€ เชฌเชฐเชฃเซ€เชฎเชพเช‚ เชฎเซ‚เช•เซ‹ เช›เซ‹. เช…เชจเซ‡ เชคเซ‡ เชฌเชงเซ€ เชญเชฒเชพเชฎเชฃเซ‹ เชตเชฟเชถเซ‡ เช›เซ‡.

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹