AG¿­·¢K8¹ú¼Ê¶ÌÊÓÆµSDK¿ª·¢ÊÖ²á

Ò»¡¢AG¿­·¢K8¹ú¼ÊSDK×é³É

  1. AG¿­·¢K8¹ú¼ÊSDK°üº¬ÁËÊÓÆµ±à¼­SDKºÍAEÄ£°æSDK
  2. ´ËÎĵµ»ùÓÚAG¿­·¢K8¹ú¼ÊSDK4.5.8°æ±¾±à¼­
  3. Îĵµ¸üÐÂ˵Ã÷£º
ÐòºÅ Îĵµ¸üÐÂÄÚÈÝ Ê±¼ä
1 ¸üÐÂAndroid¡¢IOSµÄAPI˵Ã÷ 20210114
2 ¸üÐÂÈËÏñ·Ö¸îSDK¿â˵Ã÷ 20210519
3 Ôö¼ÓAndroid¶Ë´íÎó´úÂë½âÊÍ 20210716

¶þ¡¢SDK¼¯³ÉºÍµ¥Î»ËµÃ÷

2.1¡¢Android¶Ë

  1. AG¿­·¢K8¹ú¼ÊµÄSDKÒÔmoduleµÄÐÎʽÌṩ£¬ ÔÚÄãµÄÏîÄ¿Öеã»÷File/import miduleµ¼Èë,²¢ÔÚÄúÖ÷moduleÖеÄbuild.gradleÖÐÔö¼Óimplementation project(':LanSongSDK')(Èç¹ûÊǸüÐÂSDK, ÔòÏÈɾ³ýµ±Ç°µÄmodule,,²¢ÆÁ±Îbuild.gradleÖеÄ×Ö¶Î, È»ºóÔÚimportµ¼Èë,ÔÙ´ò¿ªÆÁ±Î)
  2. LanSongSDK moduleϵÄassetsÏÂÓÐLanSongIFxxx¿ªÍ·Â˾µÓõ½µÄ¸÷ÖÖͼƬ×ÊÔ´£¬ ÈçÄúÏîĿûÓÐÓõ½LanSongIFxxx¿ªÍ·µÄÂ˾µ£¬Ôò¿ÉÒÔɾ³ý¡£
  3. ÆäËûµÄ´úÂ룬¸÷ÖÖ×ÊÔ´£¬¸÷ÖÖÊÓÆµËزĵȾùΪÑÝʾËùÓ㬲»ÊôÓÚsdkµÄÒ»²¿·Ö¡£
  4. ´úÂëʹÓÃ
1. LanSoEditor.initSDK(getApplicationContext(), null); 
// ³õʼ»¯SDK.[±ØÐë] (nullʱ,APPÃû×ÖÒ»¶¨ÊÇAG¿­·¢K8¹ú¼ÊdemoÃû×Ö)
2. LanSoEditor.setTempFileDir();
//ÉèÖÃSDK´¦Àí¹ý³ÌÖеÄÁÙʱÎļþ»º´æÂ·¾¶,Ò²ÊÇAG¿­·¢K8¹ú¼ÊÈÝÆ÷×îÖÕÉú³ÉÊÓÆµµÄ·¾¶, Äú¿ÉÒÔÉèÖÃÉú³ÉÊÓÆµÃû×ÖµÄǰºó׺. ´Ë´úÂëÊǹ«¿ªµÄ, Äúµã»÷ºó»á¿´µ½¸ü¶à×¢ÊÍ [¿ÉÑ¡]
3. LanSoEditor.setSDKLogOutListener 
//ÉèÖÃÈÕÖ¾Êä³ö¼àÌý [¿ÉÑ¡].

2.2¡¢IOS¶Ë

  1. Í϶¯LanSongEditorFramework.frameworkµ½ÄãµÄÏîÄ¿ÖÐ, ²¢ÔÚ¹¤³ÌµÄBuild Phases±êǩҳµÄLink Binary With LibrariesÖаÑAG¿­·¢K8¹ú¼ÊµÄframework·Åµ½×îÉÏÃæ.
  2. ÔÚBuild PhasesµÄ<Link Binary With Libraries>ÖÐÔö¼Ólibz.tbd , libbz2.tbd, libc++.tbd, libiconv.tbd
  3. ÔÚÄã´úÂëÖаüÀ¨Í·Îļþ£º #import <LanSongEditorFramework/ LanSongEditor.h>
  4. LanSongEditorBundle.bundle ÊÇAG¿­·¢K8¹ú¼ÊsdkÖÐ ÒÔLanSongIFxxx¿ªÍ·Óõ½µÄһЩÂ˾µÍ¼Æ¬,Èç¹ûûÓõ½LanSongIFxxx¿ªÍ·µÄÂ˾µ£¬Ôò²»ÓÃÔö¼Ó´ËÎļþ¡£ÈçÓõ½Ôò°ÑLanSongEditorBundle.bundle Í϶¯µ½ÄãÏîÄ¿µÄ copy Bundle ResourcesÖÐ
  5. ÆäËûµÄ´úÂ룬¸÷ÖÖ×ÊÔ´£¬¸÷ÖÖÊÓÆµËزĵȾùΪÑÝʾËùÓ㬲»ÊôÓÚsdkµÄÒ»²¿·Ö¡£
  6. ´úÂëʹÓÃ
³õʼ»¯
 1. Ôö¼ÓÍ·Îļþ
   #import <LanSongEditorFramework/LanSongEditor.h>
 2. ÔÚÄú³ÌÐò¸Õ¿ªÊ¼µÄµØ·½³õʼ»¯AG¿­·¢K8¹ú¼ÊµÄSDK:
       [LanSongEditor initSDK:nil]
       //³õʼ»¯SDK [±ØÐë] (nilʱ,APPÃû×ÖÒ»¶¨ÊÇAG¿­·¢K8¹ú¼ÊdemoÃû×Ö)

2.3¡¢Ê±¼äµ¥Î»

Android

IOS


Èý¡¢ÊÓÆµ±à¼­SDK

3.1¡¢SDKÖÐÓõ½µÄÃû×Ö½âÊÍ

1.composition: ºÏ³É, ÊÇÒ»¸öÈÝÆ÷, ÓÃÀ´´æ·Å¸÷ÖÖËØ²ÄµÄÈÝÆ÷, ËõдÊÇ: compXXX, ±ÈÈçcompDurationUs, Ôò±íʾºÏ³ÉµÄʱ³¤,µ¥Î»ÊÇ΢Ãë(Us)

2.original: ԭʼµÄ, cut:ʱ¼ä²Ã¼ô; duration:ʱ³¤;

3.2¡¢ºÏ³ÉÈÝÆ÷:ConcatComposition

  1. ×ÖÃæÒâ˼ÊÇ:Æ´½ÓºÏ³É.ÊÇÒÔͼƬºÍÊÓÆµµÄÆ´½ÓµÄ×Üʱ³¤×÷Ϊ×îÖÕµ¼³öÊÓÆµµÄʱ³¤, ÈÝÆ÷ÓÐ3´ó²ã, ·Ö±ðÊÇ:±³¾°Í¼²ã , Æ´½ÓÀàͼ²ã , µþ¼ÓÀàͼ²ã.
  2. ±³¾°²ã: ¸øÈÝÆ÷ÕûÌåÔö¼ÓÒ»¸ö±³¾°Í¼²ã, Ö§³Ö:ÑÕÉ«±³¾°, ͼƬ±³¾°, Èç¹ûÄãÒª¸ø²»Í¬µÄͼ²ãÉèÖò»Í¬µÄ±³¾°,Ôò¿ÉÒÔÓÃͼ²ãµÄ»­²¼/±³¾°¹¦ÄÜÀ´·Ö±ðÉèÖÃ.
  3. Æ´½Ó²ã: °ÑÓû§Ñ¡ÖеÄͼƬºÍÊÓÆµÇ°ºóÆ´½ÓÔÚÒ»Æð,ÊÇǰºóµþ¼Ó. ¿ÉÒÔÔÚ¿ªÊ¼Ç°Ôö¼Ó, Ò²¿ÉÒÔ×öÔ¤ÀÀ¹ý³ÌÖвåÈë, ¿ÉÒÔÖ¸¶¨Ê±¼äµã²åÈë, ¿É¸´ÖÆ, ¿Éɾ³ý, ¿Éµ÷½Úÿ¸öͼ²ãµÄǰºóλÖÃ, Ö§³ÖÊÖÊÆµ÷½Ú, Ö§³Öͼ²ãµÄ¸÷ÖÖ·½·¨.
  4. µþ¼ÓÀàͼ²ã: ÔÚÆ´½Ó²ãÉÏÃæ,µþ¼Ó¶à¸öÆäËûͼ²ã, ÊÇÉÏϵþ¼Ó. ±ÈÈçµþ¼Óˮӡ, µþ¼ÓÎÄ×Ö, µþ¼Ó¶¯»­µÈµÈÕâЩ³ÆÖ®Îªµþ¼ÓÀàÐ͵Äͼ²ã, ͼ²ã¿Éµ÷½ÚÉÏÏÂλÖÃ, ¿ÉÉèÖÃÏÔʾ¿ªÊ¼Ê±¼äµã, ¿ÉÉèÖÃÏÔʾʱ³¤;¿Éµþ¼Ó, ¿Éɾ³ý, Ö§³ÖÊÖÊÆ,Ðý×ªÒÆ¶¯Ëõ·ÅÂ˾µÂíÈü¿ËµÈµÈ, ¿ÉÖ´Ðи¸Ààͼ²ãµÄËùÓз½·¨.
  5. ÕâЩAPI µÄ¹Ø¼ü´ÊÊÇ: ÔÚLSOConcatCompositionViewÖÐ;, Æ´½Ó:(concat), µþ¼Ó:(overLay), ±³¾°(backGround).

3.3¡¢ÊÓÆµºÍͼƬµÄ»ìºÏ±à¼­

  1. µ±Ç°´ó²¿·ÖÊÓÆµ±à¼­ÊÇÆ´½Ó±à¼­, ±ÈÈçÄúÑ¡ÖÐÁ˼¸¸öÊÓÆµºÍ¼¸¸öͼƬ, ÔòÊÇÊÓÆµºÍͼƬ»ìºÏµÄǰºóÆ´½ÓºÏ³ÉµÄ±à¼­.
  2. ¿ÉÒÔÊǵ¥¸öÊÓÆµ, Ò²¿ÉÒÔÊǶà¸öÊÓÆµ, Ò²¿ÉÒÔÊÇÒ»ÕÅͼƬ»ò¶àÖÖͼƬ, »òÕßͼƬºÍÊÓÆµ»ìºÏ±à¼­.
  3. ÊÓÆµÔö¼Óºó,µ±Ç°Ä¬ÈÏÊÇÕû¸öÊÓÆµÊ±³¤Ôö¼Ó½øÈ¥, Ôö¼Óºó, Äã¿ÉÒÔÉèÖÃÊÓÆµÊ±³¤, ÈÝÆ÷µÄ×Üʱ³¤»á¸Ä±ä, µÃµ½Í¼²ã¶ÔÏó,¿ÉÖ´ÐÐͼ²ãµÄ¸÷ÖÖ·½·¨.
  4. ͼƬÔö¼Óºó, ĬÈÏÿÕÅͼƬÏÔʾ3Ãë, ¿Éµ÷½ÚÏÔʾʱ³¤, ¿É¸´ÖÆ,ɾ³ý,²åÈëͼƬ, Æ´½ÓͼƬ²»¿ÉÒÔÑ­»·, µÃµ½Í¼²ã¶ÔÏó,¿ÉÖ´ÐÐͼ²ãµÄ¸÷ÖÖ·½·¨.
  5. Èç¹ûÉèÖÃÁËת³¡,Ôòǰһ¸ö²ãºÍºóÒ»²ãÓв¿·Ö»­ÃæÊÇÖØµþ, ÖØµþʱ¼ä¿ÉÉèÖÃ. ÉèÖÃת³¡ºó,
  6. ×îÖÕÈÝÆ÷µÄ×ܳ¤¶ÈÊǸ÷¸öͼƬºÍÊÓÆµµÄ³¤¶ÈÖ®ºÍ ,Èç¹ûÓÐת³¡»òÊÓÆµ±äËÙ,Ôò¶ÔÓ¦µÄʱ³¤»á¸Ä±ä.

3.4¡¢Í¼²ãÖ®--ʱ¼äµ÷½Ú

  1. ËØ²Ä±¾ÉíµÄµÄʱ³¤. ±ÈÈçÊÓÆµÊ±³¤,ÉùÒôʱ³¤, ͼƬÔÚ·ÅÈëºó, ĬÈÏÊÇÏÔʾ3Ãë; ͼƬÐòÁкÍgifµÈÊÇÆä±¾ÉíµÄʱ³¤; Õâ¸öʱ³¤ÊÇËØ²Ä±¾ÉíµÄ, AG¿­·¢K8¹ú¼Ê³ÆÖ®ÎªAssetDuration ÊÇ×ÊԴʱ³¤, Ö»ÄܶÁÈ¡,²»ÄÜÐÞ¸Ä, µ«Äã¿ÉÒÔÐÞ¸ÄËØ²ÄÔÚÈÝÆ÷ÖеÄÏÔʾʱ¼äºÍ´Óʲôʱ¼äµã¿ªÊ¼ÏÔʾ;
  2. ¿ÉÒÔÐ޸ĵÄÓÐ: ËØ²ÄÔÚÈÝÆ÷ÖеÄÏÔʾʱ¼äµã, ÊÇ·ñÑ­»·, ÏÔʾʱ³¤, Èç¹ûÑ­»·,Ôò»á´ÓÏÔʾʱ¼äµã¿ªÊ¼, һֱѭ»·µ½Õû¸öÈÝÆ÷β²¿, ʱ¼ä¿ÉÒÔʵʱÉèÖÃ, ʵʱµ÷½Ú, ʵʱ»ñÈ¡,µ±ÏÔʾʱ³¤¸Ä±äºó, Èç¹ûÄãÒª»ñÈ¡¶ÔÓ¦µÄËõÂÔͼ,ÔòËõÂÔͼÖÐͼƬÊý×éÒ²»áÏàÓ¦µÄ¸Ä±ä;
  3. Èç¹ûÊÇÊÓÆµËزÄ, ÔòÖ§³Ö²Ã¼ôÊÓÆµ³¤¶È, Á½¸ö·½·¨ÊÇ: setCutStartTimeºÍ setCutEndTime,´ÓÊÓÆµµÄʲôʱ¼ä¿ªÊ¼²Ã¼ô,ºÍ²Ã¼ôµ½Ê²Ã´µØ·½; ÊÓÆµ²Ã¼ôµ±Ç°Ã»ÓÐÔ¼Êø, µ«½¨ÒéÄã×îС²Ã¼ôÖµÊÇ1Ãë;
  4. ÕâЩAPIµÄÃû×ÖÊÇ:×ÊԴʱ³¤(assetDuration), µ±Ç°Í¼²ãµÄÏÔʾʱ³¤( displayDuration), ´ÓÈÝÆ÷µÄʲôʱ¼äµã¿ªÊ¼ÏÔʾ:(startTimeOfComp);

3.5¡¢Í¼²ãÖ®--ÊÖÊÆ + ÒÆ¶¯/Ëõ·Å/Ðýת

  1. ÈÝÆ÷ÔÚ´´½¨Ê±ÉèÖÃÁË¿í¶ÈºÍ¸ß¶È, ËØ²ÄÔö¼Ó½øÈ¥ºó, »áĬÈϷŵ½ÈÝÆ÷µÄÖмä, ¼´ÈÝÆ÷µÄ¿í¶È/2ºÍ¸ß¶È/2.
  2. ÿÔö¼ÓÒ»¸öËØ²Ä, »áµÃµ½Ò»¸öͼ²ã¶ÔÏó, ͼ²ã¶¼Ö§³ÖÓÃÊÖÖ¸Ö±½Ó²Ù×÷ÆÁÄ» À´Íê³É ÒÆ¶¯Ëõ·ÅÐýתµÄtouchʼþ,, Äã¿ÉÒÔµ¥Ö¸Òƶ¯, ˫ָËõ·ÅºÍÐýת; µ±Ñ¡ÖÐÒ»¸öͼ²ãʱ, ËüµÄÖܱ߻á³öÏÖÒ»¸öºìÉ«µÄ·½¿ò, ±íʾѡÖе±Ç°Í¼²ã, ΪÁ˱ÜÃâÔÚ²Ù×÷ʱÎó´¥±ðµÄͼ²ã, Äã¿ÉÒ԰ѱðµÄͼ²ãËø¶¨, AG¿­·¢K8¹ú¼ÊÌṩ·á¸»µÄAPIÈÃÄãÉèÖûò»ñÈ¡Ïà¹ØµÄ×ø±ê, AG¿­·¢K8¹ú¼ÊÉõÖÁ¶¨ÒåÁËÒ»¸öÀàLSORectÀ´ÈÃÄã»ñÈ¡Ïà¶ÔÓ¦µ±Ç°Ô¤ÀÀ´°µÄÏà¶Ô×ø±ê ºÍ Ïà¶ÔÓÚÈÝÆ÷Öеľø¶Ô×ø±ê.
  3. AG¿­·¢K8¹ú¼ÊÁíÍⶨÒåÁ˸÷ÖÖ³£¼ûµÄö¾ÙÀàÐÍ, ±ÈÈç4ÖÖËõ·ÅÀàÐÍ, ºÍÉÏ/ÏÂ/×ó/ÓÒ/ÖÐ/×óÉÏ/×óÏÂ/ÓÒÉÏ/ÓÒÏÂÕâ9¸öλÖõ㹩ÄúÑ¡Ôñ; ÌṩËõ·ÅϵÊý, Ëõ·Åµ½Êµ¼Ê´óС,ÉèÖþßÌåλÖÃ, Ïà¶ÔÆÁĻλÖõÈ.
  4. Èç¹ûÄãÒªÓôúÂëµÄÐÎʽÉèÖÃ, ÔòÉèÖõÄλÖÃÊǵ±Ç°Í¼²ãÖÐÐĵãµÄλÖÃ. ¿ÉÒÔËõ·Åµ½Ö¸¶¨´óС, ÐýתÔò0¶ÈÔòÊÇÕýÉÏ·½Îª0µã, ½Ç¶ÈÊÇÈÎÒâ½Ç¶È, ±ÈÈçÉèÖÃΪ-100¶È, -400¶È, »ò370¶È, 540¶ÈµÈµÈ.
  5. ÕâЩAPIµÄ¹Ø¼ü´ÊÊÇ: Ëõ·Å´óС(scaleSize), Ëõ·ÅÀàÐÍ(scaleType) , Ëõ·ÅϵÊý(scaleFactor), λÖÃÀàÐÍ( positionType) , λÖÃÖÐÐĵã(centerPoint), λÖÃÏà¶ÔÔ¤ÀÀ´°¿Ú×ø±ê(positionInView), Ðýת (rotation), setTouchEnable , xxxInView( ÊÇÒÔµ±Ç°Ô¤ÀÀΪµ¥Î»µÄ¿í¸ßºÍλÖÃ;)

3.6¡¢Í¼²ãÖ®--ÌùÖ½/ˮӡ/ÎÄ×Ö

  1. ÌùÖ½, ˮӡ, ÎÄ×Ö, ÔÚAG¿­·¢K8¹ú¼Êͼ²ã´¦Àí¼Ü¹¹Àï, ÊÇÒÔͼÏñµÄÐÎʽ³ÊÏÖµÄ, ÒòΪÊÖ»úGPU´¦ÀíµÄÊÇͼÏñ, ÌùÖ½, ˮӡ, ÎÄ×ÖÔڵײãÊÇÒ»¸öÒâ˼, ÈÏΪÊÇÒ»¸öͼÏñ»òÒ»×éÁ¬ÐøµÄͼÏñ×ö´¦Àí.
  2. ÎÄ×ÖÔÚSDKÄÚ²¿»á¸÷ÖÖת»»·½·¨, ÈÃÄã·½±ãµÄÒÔÎÄ×Öͼ²ã²Ù×÷, ²Ù×÷Íê±Ïºóµ×²ã»áת»»ÎªÍ¼ÏñÀ´´¦Àí,Èç¹ûAG¿­·¢K8¹ú¼ÊÌṩµÄ»æÖÆÎÄ×Ö²»¹»Ïêϸ, ÄãÒ²¿ÉÒÔ×Ô¼º»æÖÆ,È»ºóת»»ÎªÍ¼Æ¬»òͼƬÊý×é,ÉèÖõ½ÈÝÆ÷ÖÐ.
  3. ÌùÖ½ºÍˮӡÊÇÒ»¸öÒâ˼,AG¿­·¢K8¹ú¼ÊÌṩÁ˵¥¸öͼƬµÄͼ²ã,¶àÕÅÁªÏµÍ¼Æ¬×é³ÉµÄͼ²ã, Gifͼ²ãµÈ, ÕâЩÄã¿ÉÒÔ·½±ãµÄÉèÖÃ, ¿ÉÒÔÉèÖÃÒ»¸ö,Ò²¿ÉÒÔÉèÖöà¸ö.
  4. ͼ²ãµÄÔö¼ÓÊÇͨ¹ýÈÝÆ÷CompositionµÄ·½·¨ÊµÏÖµÄ, Ôö¼Óºó, µÃµ½¶ÔÓ¦µÄͼ²ã¶ÔÏó;
  5. ÕâЩAPI µÄ¹Ø¼ü´ÊÊÇ: androidµÄͼƬͼ²ã(BitmapLayer) , androidµÄͼƬÐòÁÐͼ²ã(BitmapListLayer), iosµÄͼƬͼ²ã(ImageLayer), iosµÄͼƬÐòÁÐͼ²ã(ImageListLayer), Gifͼ²ã.

3.7¡¢Í¼²ãÖ®--ÑÕÉ«µ÷½Ú/Â˾µ/ÃÀÑÕ

  1. Â˾µÊǶÔͼ²ãµÄ»­Ãæ×öµ÷½Ú, ºÍͼ²ãµÄËõ·ÅÒÆ¶¯Ò»ÑùÊÇͼ²ãµÄÒ»¸öÊôÐÔ, ÑÕÉ«µ÷½ÚºÍÂ˾µºÍÃÀÑÕ, ¶¼ÊÇÂ˾µµÄ²»Í¬Ð§¹û. µ±Ç°AG¿­·¢K8¹ú¼ÊµÄÃÀÑÕÊǽö¶ÔÕûÌå»­Ãæ×öĥƤºÍÃÀ°×´¦Àí,ûÓÐ×öÁ³Ê¶±ðºóµÄ¸÷ÖÖ¹¦ÄÜ.
  2. µ±Ç°Ö§³ÖµÄÑÕÉ«µ÷½Ú°üÀ¨: ÁÁ¶È/ ¶Ô±È¶È/ ±¥ºÍ¶È/ Èñ»¯/É«ÎÂ/°×ƽºâ/É«µ÷/ÆØ¹â¶È
  3. µ±Ç°Ö§³Ö80ÖÖÂ˾µ, °üÀ¨³£¼ûµÄ17ÖÖÂ˾µ,µ±Ç°½¨ÒéÄãʹÓÃÕâ17ÖÖÂ˾µ, ÕâЩÂ˾µÔÚAG¿­·¢K8¹ú¼ÊdemoÀï¿ÉÒÔ¿´µ½.
  4. ÕâЩAPI µÄ¹Ø¼ü´ÊÊÇ: ÉèÖÃÂ˾µ(setFilter,ÉèÖûá°ÑÉÏÒ»¸öÌæ»»µô),Ôö¼ÓÂ˾µ(addFilter), ÒÆ³öÂ˾µ(removeFilter),ɾ³ýËùÓÐÂ˾µ(removeAllFilter);

3.8¡¢Í¼²ãÖ®--ת³¡ÉèÖÃ

  1. ת³¡ÊÇÁ½¸öËØ²ÄǰºóÆ´½Óʱ²¥·ÅʱµÄÒ»ÖÖ¹ý¶ÉЧ¹û, ±ÈÈçÉÏÒ»¶Îµ­µ­µÄÏûʧ, ÏÂÒ»¶ÎÖð½¥³öÏÖµÈ.
  2. µ±Ç°µÄת³¡ÊÇAEÉè¼ÆÊ¦ÔÚPC¶ËÓÃafter Effect ÉèÖúõÄ, È»ºó°´ÕÕAG¿­·¢K8¹ú¼ÊµÄ¸ñʽ,µ¼³öΪjsonÎĵµ,SDK»¹Ô­³öÀ´ÔÚPC¶ËÉè¼ÆµÄЧ¹û. ÕâÑùµÄºÃ´¦ÊÇ: ¿ª·¢ÈËÔ±²»ÓÃ×Ô¼ºÓôúÂëʵÏÖ¸÷ÖÖЧ¹û,Ö»ÐèÒª¸ù¾Ý²»Í¬µÄЧ¹û,°Ñ¶ÔÓ¦µÄjsonË͵½SDKÖÐ, SDK¾ÍʵÏÖÁËÕâÑùµÄЧ¹û, ¼òµ¥¸ßЧ, ²¢¿ÉÒÔ×öµ½AndroidºÍiosµÄͳһ.
  3. PC¶ËÓÃAeÈí¼þÖÆ×÷¹æ·¶: ÓÃÒ»ÕÅСÓÚµÈÓÚ544x960µÄͼƬ´´½¨Ò»¸öºÏ³É, È»ºó¶ÔÆä×öÐýתËõ·Å͸Ã÷´¦Àí, Ðγɶ¯»­; »ò¶ÔÆä×ömaskÕÚÕÖ´¦Àí,Ðγɶ¯»­; µ±Ç°²»Ö§³Öͬʱ×öÐýתËõ·Å͸Ã÷+ maskµÄЧ¹û; ºÏ³ÉµÄ·Ö±æÂÊӦСÓÚµÈÓÚ544x960, ʱ³¤½¨Òé²»´óÓÚ3Ãë, ÒÔʵ¼ÊЧ¹ûΪ׼;
  4. µ±Ç°Ö§³Ö¸÷ÖÖÕÚÕÖת³¡ºÍ»ù´¡µÄÒÆ¶¯ÐýתËõ·Åת³¡; ת³¡ÉèÖÃÊÇͨ¹ýÿ¸ö¾ßÌåµÄͼ²ãÉèÖõÄ, ±ÈÈçÓÐͼ²ãABC3¸ö, ÒªÔÚAB֮ǰÔö¼Óת³¡,ÔòÉèÖÃAµÄtransition; Òª¸øBCÖ®¼ä¼Óת³¡,ÔòÉèÖÃBµÄtransition;
  5. ת³¡µÄʱ¼ä¿ÉÒÔÉèÖÃ,ĬÈÏÔÚÊÇÉèÖ÷¾¶ºó, »áĬÈÏÊÇ1ÃëÖÓ, ×î´ó¿ÉÉèÖÃΪ5ÃëÖÓ; µ±Ç°½öÖ§³ÖÕÚÕÖת³¡, ¼´¸÷ÖÖÐÎʽµÄ͸Ã÷.
  6. ÕâЩAPI µÄ¹Ø¼ü´ÊÊÇ:ת³¡(transition); ÉèÖÃת³¡Ê±¼ä:(transitionDuration) , ²¥·Åת³¡(playTransition), È¡Ïû(cancelTransition);
  7. Ö´Ðв½ÖèÊÇ: ÄãÐèÒªÏÈÉèÖÃת³¡Â·¾¶, ÉèÖúó£¬Ä¬ÈÏת³¡Ê±¼äÊÇ1ÃëÖÓ, ÈçÐèÔ¤ÀÀ£¬Ôòplaytransition£» µ÷ÓÃcancelTransitionÈ¡Ïûת³¡£» ÔÚÉèÖ÷¾¶ºó, Äã¿ÉÒÔÉèÖÃת³¡Ê±¼ä; ÉèÖúó, ÈçÐèÒª²¥·ÅÔòplayTransition; Èç¹ûÄãÒªÓ¦Óõ½È«¾Ö,ÔòÐèÒª°ÑÒ»¸öjsonÎļþÑ­»·ÉèÖõ½Ã¿¸öͼ²ã¶ÔÏó; AG¿­·¢K8¹ú¼ÊÄÚ²¿»á¹²ÓÃͬһ¸öjsonÄÚÈÝ;

3.9¡¢Í¼²ãÖ®--È볡¶¯»­/³ö³¡¶¯»­/Ö¸¶¨Ê±¼äµã¶¯»­

  1. È볡¶¯»­, ³ö³¡¶¯»­, ºÍת³¡Ò»Ñù, Ò²ÊÇAeÉè¼ÆÊ¦ÔÚPC¶ËÉè¼ÆºÃºó, µ¼³öΪjson,ËÍÈëµ½SDKÖÐ. SDK½âÎö»¹Ô­³ö¶ÔÓ¦µÄЧ¹û.
  2. PC¶ËÓÃAeÈí¼þÖÆ×÷¶¯»­¹æ·¶: ÓÃÒ»ÕÅСÓÚµÈÓÚ544x960µÄͼƬ´´½¨Ò»¸öºÏ³É, È»ºó¶ÔÆä×öÐýתËõ·Å͸Ã÷´¦Àí, Ðγɶ¯»­; »ò¶ÔÆä×ömaskÕÚÕÖ´¦Àí,Ðγɶ¯»­; ºÏ³ÉµÄ·Ö±æÂÊӦСÓÚµÈÓÚ544x960, ʱ³¤½¨Òé²»´óÓÚ3Ãë, , ÒÔʵ¼ÊЧ¹ûΪ׼; Èç¹ûÊÇÐýתËõ·Å͸Ã÷ÔòÖ¡Âʽ¨ÒéÊÇ40, ÈôÊÇmaskÕÚÕÖ,ÔòÖ¡Âʽ¨Òé25.
  3. ÒòÈ볡¶¯»­ºÍ³ö³¡¶¯»­´Ó¼¼ÊõÉϽ²£¬½ö½öÊDzåÈ뵽ͼ²ãµÄʱ¼äµã²»Í¬£¬SDK¿ÉÒÔÉèÖÿªÊ¼´Óͼ²ãµÄÄĸöʱ¼äµã¿ªÊ¼, µ±Ç°È볡¶¯»­Ä¬ÈÏÊÇ0, ³ö³¡¶¯»­Ä¬ÈÏ×îºójsonµÄʱ¼äʱ³¤£» Äã¿ÉÒÔµ÷½ÚÕâ¸ö³öÈ볡µÄ³ÖÐøÊ±¼ä, ³ÖÐøÊ±¼äµ÷½Úºó, »á°Ñµ÷½ÚºóµÄʱ³¤×÷ΪÕû¸ö¶¯»­×ßÍêµÄʱ¼ä, Èç¹ûÄãÉèÖõĶÌ,Ôò¶¯»­×ߵĿì; Èç¹ûÉèÖõij¤,Ôò¶¯»­×ßµÄÂý£» È볡¶¯»­ºÍ³ö³¡¶¯»­ÊÇsetXXXµÄ·½Ê½£¬ ÿ´ÎÉèÖúó£¬ »á°Ñ֮ǰµÄ¶¯»­ÒƳö£»Í¬Ò»Ê±¿ÌÖ»ÄÜÓÐÒ»¸öÈ볡»ò³ö³¡¶¯»­.
  4. Ö¸¶¨Ê±¼äµã¶¯»­, ÊÇÄã¿ÉÒÔÖ¸¶¨Ò»¸öʱ¼äµãÔö¼Ó¶¯»­, ¿ÉÒÔʵʱÉèÖÿªÊ¼Ê±¼äµã,Ò²¿ÉÒÔÉèÖö¯»­Ê±³¤, ¿ÉÒÔÔö¼Ó¶à¸ö, ÿ¸öËØ²Ä×î´óÖ§³Ö20¸ö¶¯»­¡£ÔÚÿ´ÎÉèÖúó£¬ ¿ÉÔ¤ÀÀ»òÒÆ³ý.
  5. ÕâЩAPIµÄ¹Ø¼ü´ÊÊÇ£º ¶¯»­:(Animation) ; È볡¶¯»­/³ö³¡¶¯»­:(setAnimationAtLayerHead/End), Ö¸¶¨Ê±¼äµã¶¯»­:(addAnimationAtCompTimeUs)Ô¤ÀÀ¶¯»­ playAnimation; ÒÆ³ýremoveAnimation.
  6. Ö´Ðв½ÖèÊÇ: Ôö¼ÓjsonÎļþ, »áµÃµ½LSOAnimation¶ÔÏó,ÓÃÕâ¸ö¶ÔÏó¿ÉÒÔplayAnimationÀ´Ô¤ÀÀ; removeAnimationɾ³ý; ¶ÔÏóÀïÓÐÉèÖÿªÊ¼Ê±¼äµãºÍ²¥·Åʱ³¤µÄ·½·¨;. µÈҪɾ³ýʱ,ÓÃremoveAnimation; µ±Ò»¸öͼ²ã´ÓÈÝÆ÷ÖÐÊͷźó, AG¿­·¢K8¹ú¼Ê»áÏú»ÙÀïÃæµÄËùÓеĶÔÏó.

3.10¡¢Í¼²ãÖ®--ÌØÐ§

  1. ºÍ¶¯»­Ò»ÑùµÄÖÆ×÷²½Öè, Ψһ²»Í¬µÄÊÇ: ¶¯»­ÊÇ´Ó¿ªÊ¼²¥·Åµ½½áÊø, Èç¹ûÉèÖõÄʱ³¤²»µÈÓÚjsonÖеÄĬÈÏʱ³¤,¶¯»­Æ½¾ù·ÖÅ䲻ͬµÄ¶¯»­¿ìÂýÀ´´ïµ½ÉèÖõij¤¶È; ¶øÌØÐ§µÄЧ¹ûʱ¼äÊǹ̶¨µÄ, Èç¹ûÉèÖõÄʱ³¤jsonÖеÄĬÈÏʱ³¤,Ôò»áÑ­»·²¥·ÅÌØÐ§.
  2. ÌØÐ§¿ÉÉèÖõ±Ç°Í¼²ãµÄÈÎÒâʱ¿Ìµã¿ªÊ¼,AG¿­·¢K8¹ú¼Ê¾ÙÀýÁË´ÓÍ·(head) ºÍβ(end)µÄÁ½ÖÖ·½Ê½.
  3. ÕâЩAPIµÄ¹Ø¼ü´ÊÊÇ: ÌØÐ§:(Effect), Ö¸¶¨Ê±¼äµãÔö¼ÓÌØÐ§:(addEffectAtCompTimeUs); Ô¤ÀÀÌØÐ§(playEffect), ÒÆ³ýÌØÐ§:(removeEffect).
  4. Ö´Ðв½Öè, ºÍ¶¯»­²½ÖèÒ»ÖÂ.

3.11¡¢Í¼²ãÖ®--»­²¼(±³¾°)/ȥˮӡ/͸Ã÷/¾µÏñ

  1. »­²¼ÊǶԵ±Ç°Ã¿¸öͼ²ã×öµÄ²Ù×÷, ÊÇÎÞÂÛͼ²ãËõ·Å¶àÉÙ, »­²¼¶¼»áÆÌÂúÕû¸öÈÝÆ÷, »­²¼¿ÉÒÔÊÇÑÕÉ«, ͼƬ, »ò»­ÃæµÄÐ黯×ö±³¾°£»
  2. ȥˮӡµ±Ç°Ö§³ÖÂíÈü¿Ëȥˮӡ, AG¿­·¢K8¹ú¼ÊÔÚͼ²ãÀàÖоÙÀýÁË×î´ó4¸öȥˮӡµÄAPI, ¿ÉÒÔÉèÖÃλÖÃ,ÉèÖôóС,ÉèÖÃÂíÈü¿ËÏñËØµÄ´óС; Èç¹ûÄãÓиü¶à¸öÂíÈü¿ËµÄÐèÇó,»¹ÊÇÓÃLanSongMosaicRectFilter×ÔÐÐÔö¼Ó;
  3. ͸Ã÷AG¿­·¢K8¹ú¼ÊÃèÊöΪ:²»Í¸Ã÷¶È, ÕâÑù¸üºÃÀí½âһЩ, ºÍµ÷½ÚRGBÒ»Ñù,¿ÉÒÔÖ±½ÓÉèÖÃ; ²ÎÊý1.0ÊÇÍêÈ«²»Í¸Ã÷, 0.0ÊÇÍêȫ͸Ã÷;
  4. ¾µÏñ:ÊǰÑÕû¸ö»­ÃæµÄ×ó±ß¾µÏñµ½ÓÒ±ß, °ÑÓұ߾µÏñµ½×ó±ß; Èç¹ûÄã´òËã°Ñ×ó±ßµÄÒ»°ë¾µÏñµ½ÓÒ±ß,ÔòÓÃAG¿­·¢K8¹ú¼ÊµÄLanSongMirrorFilterÂ˾µ;
  5. ÕâЩAPIµÄ¹Ø¼ü´ÊÊÇ: ±³¾°(backGround), ȥˮӡ(mosaicRect), ²»Í¸Ã÷¶È(opacityPercent) , ¾µÏñ(mirror).

3.12¡¢Í¼²ãÖ®--»ñÈ¡ËõÂÔͼ

  1. ËõÂÔͼÊÇÿÃëÖÓÒ»Ö¡, ´óСÊÇ192x192µÄͼƬ¶ÔÏó;
  2. ÓÃgetDisplayThumbnailList »ñÈ¡µ½Ã¿ÕÅͼƬ´óСÊÇ192x192, ÿ¸öͼ²ã×îºó»ñÈ¡µ½µÄͼƬ¿í¶È×ܺ͵ÈÓÚͼ²ãµÄËõÂÔͼÏÔʾʱ³¤(ÃëΪµ¥Î»)*192;
  3. AG¿­·¢K8¹ú¼ÊÓкϳÉ×Üʱ³¤¸Ä±ä»Øµ÷(DurationChanged): µ±Ô­ÊÓÆµÊ±³¤²Ã¼ô, ±äËÙ,µ¹Ðò,Ôö¼Óת³¡,¶¼»á´¥·¢´Ë»Øµ÷,½¨ÒéÔÚÕâÀïÖØÐÂË¢ÐÂËùÓÐµÄÆ´½Ó²ãµÄʱ³¤, ÒòΪһ¸öͼƬ»òÊÓÆµµÄʱ³¤¸Ä±äÁË, ±ðµÄͼƬºÍÊÓÆµµÄ¿ªÊ¼ÏÔʾµãµÈ¶¼»á¸Ä±ä;
  4. AG¿­·¢K8¹ú¼ÊµÄdemoÑÝʾ, ÊÇÔÚdurationChangedµÄʱºòË¢ÐÂËùÓÐµÄÆ´½Ó²ãµÄËùÓÐͼ²ãËõÂÔͼ;

3.13¡¢Í¼²ãÖ®--¹Ø¼üÖ¡¶¯»­

  1. ¹Ø¼üÖ¡¶¯»­ÊÇÖ¸:ÔÚÁ½¸ö²»Í¬Ê±¼äµã·Ö±ð¶ÔÊÓÆµ»òͼƬ×ö¶¯×÷, È»ºóSDK¾Í»á×Ô¶¯´ÓÒ»¸öʱ¼äµãƽ»¬¹ý¶Éµ½ÁíÒ»¸öʱ¼äµã״̬µÄ¶¯»­, ³ÆÖ®Îª¹Ø¼üÖ¡¶¯»­;
  2. ±ÈÈçÄãÔÚʱ¼äAµã°ÑÊÓÆµËõСһ±¶, ÔÚBµã°ÑÊÓÆµ·Å´óÒ»±¶, ÔòÔ¤ÀÀʱSDK¾Í»á×Ô¶¯µÄ´ÓAµãƽ»¬µÄÒ»µãÒ»µãµÄ·Å´óÊÓÆµ,Ö±µ½Bµã·Å´óÍê±Ï,´Ó¶øÐγɶ¯»­.
  3. µ±Ç°¹Ø¼üÖ¡¶¯»­Ö§³Ö ÒÆ¶¯ÐýתËõ·Å͸Ã÷;
  4. ¹Ø¼üÖ¡µÄÓÅÏȼ¶×îµÍ, Èç¹ûÔÚͬһʱ¼ä¶ÎÉèÖÃÁ˹ؼüÖ¡ºÍ¶¯»­/ÌØÐ§/ת³¡µÈjsonʱ, Ôò¶¯»­/ÌØÐ§/ת³¡ÓÐЧ¹û, ¹Ø¼üÖ¡ÎÞЧ;

3.14¡¢Í¼²ãÖ®--µ÷ËÙ

  1. ÊÓÆµÖ§³Öµ÷ËÙ, µ÷ËÙ¿ÉÉèÖÃ0.1±¶µ½10.0±¶
  2. 0.1±¶ÊÇ·ÅÂý10±¶, »­ÃæÏÔʾʱ³¤µÈÓÚÔ­À´µÄ10±¶, 10.0±¶ÊǼӿì10±¶, »­ÃæÊ±³¤µÈÓÚÔ­À´µÄ1/10; 1.0 ±¶ÊÇÔ­À´µÄËÙ¶È, ¿ÉÒÔºÜϸСµÄµ÷½Ú,±ÈÈç0.1, 0.2, 0.3µÈ;
  3. µ±Ç°ÔÚµ÷ËÙʱ, ÔÝʱ²»Ö§³ÖÉùÒô±äËÙ; ÉùÒôĬÈÏÊǾ²ÒôµÄ; µ÷ËÙºó,»á´¥·¢ÈÝÆ÷µÄdurationChanged»Øµ÷, ½¨ÒéÄãÔڻص÷ÖÐȥˢÐÂËùÓÐËõÂÔͼ;
  4. ¶ÔÓ¦µÄAPI ÊÇ: setVideoSpeed, getVideoSpeed;

3.15¡¢ÉùÒôͼ²ã

  1. Íâ½çÊäÈëµÄ¸÷ÖÖÒôЧ, ÎÞÂÛÊÇwav¸ñʽµÄÒôЧ, »¹ÊÇmp3,m4a, »òÕß¼Òô »òÕß´øÓÐÉùÒôµÄÊÓÆµ, AG¿­·¢K8¹ú¼Êͳ³ÆÎªÉùÒô. ÕâЩÉùÒôÊÇͬһ¸öAPIÊäÈëµ½SDKÖÐ, È»ºóµÃµ½¶ÔÓ¦µÄÉùÒôͼ²ã.
  2. ÉùÒôͼ²ã, ¿ÉÒÔÖ¸¶¨Ê±¼äµãÔö¼Ó, ¿ÉÒÔÉèÖÃÑ­»·, ÉèÖðÑÉùÒôµÄÄÇÒ»¶Î²Ã¼ôºóÔö¼Ó, ÉèÖÃÒôÁ¿´óС, ÉèÖõ­Èëµ­³öЧ¹û
  3. ÉùÒôÒôÁ¿·¶Î§ÊÇ0---5.0 , 1.0ÊÇĬÈÏÉùÒô. 0.0ÊǹرÕÉùÒô; 5.0ÊÇ·Å´ó5±¶; ÉùÒô²Ã¼ô×îСÊÇ300ºÁÃë, ×î´óÊÇÉùÒôµÄԭʼ³¤¶È;
  4. ÕâЩAPIµÄ¹Ø¼ü´ÊÊÇ: ÒôƵͼ²ã:(LSOAudioLayer); ²Ã¼ôʱ³¤(setCutStartTime/setCutEndTime) ÒôÁ¿:(volume)

3.16¡¢API½éÉÜ


3.16.1 AndroidÊÓÆµ±à¼­SDK¸ÅÊö:

  1. AG¿­·¢K8¹ú¼Ê°ÑÊÓÆµ±à¼­³éÏóΪÁ½¸öÀà, Ò»¸öÊDZ༭ԤÀÀÀàLSOEditPlayer, Ò»¸öͼ²ãÀàLSOLayer¡£
  2. ²¥·ÅÔ¤ÀÀÀàLSOEditPlayer, ÊÇÒ»¸öËØ²ÄÈÝÆ÷, Ò²ÊÇÒ»¸öview,¿É²¼¾Öµ½xmlÖÐ,µ±ÉèÖÿí¸ß±ÈÀýʱ,»á×Ô¶¯ÊÊÅä²¢µÈ±ÈÀý²¼¾Ö²¥·Å»­Ãæ,ÒÔ¼àÌý·µ»Ø. ¿ÉÍê³ÉËØ²ÄµÄ:²åÈë»òɾ³ý,Ìæ»»,Æ´½Ó,µþ¼Ó,¶¨Î»,²¥·Å/ÔÝÍ£µÈʵʱÈÝÆ÷Ô¤ÀÀµÄ¹¦ÄÜ¡£
  3. ͼ²ãÀàLSOLayer: ͼƬ/ÊÓÆµ/Îı¾/ÌØÐ§/GIFµÈÔö¼Óµ½²¥·ÅÆ÷Öкó,AG¿­·¢K8¹ú¼Ê°ÑËû´¦Àí³ÉÒ»²ã»­Ãæ ,Ôö¼ÓÒ»¸ö, ¾ÍÊÇÔö¼ÓÒ»²ã»­Ãæ;Ôö¼Óʱ»á·µ»ØLSOLayer¶ÔÏó,ÓÃÕâ¸ö¶ÔÏó¿ÉÒÔÉèÖÃ:ʱ¼äµã,λÖÃ,¿í¸ß,½Ç¶È,¾µÏñ,µ¹Ðò,Â˾µ,µ÷½Ú,ÃÀÑÕ,¶¯»­,ת³¡,ÌØÐ§µÈ¹¦ÄÜ¡£
  4. µ÷ÓÃÁ÷³ÌÊÇ:ÔÚActivityµÄonCreate/onPause/onResume/onDestroyÉúÃüÖÜÆÚÖÐ, ·Ö±ðÔö¼ÓLSOEditPlayer¶ÔÓ¦µÄͬÃû·½·¨¼´¿É¡£
  5. ËØ²ÄÔö¼ÓµÄÐÎʽÓÐÁ½ÖÖ, Ò»ÖÖÊÇǰºóÆ´½Ó, Ò»ÖÖÊÇÉÏϵþ¼Ó, ʾÒâͼÈçÏÂ:

image

1¡¢AndroidÊÓÆµ²¥·ÅLSOEditPlayerÀà˵Ã÷
  1. public void onCreateAsync(LSORatioType ratio, OnCreateListener listener)
¹¦ÄÜ:
? ÉèÖò¥·ÅÈÝÆ÷¿í¸ß±È;
? ÔÚActivityµÄ onCreateÖе÷ÓÃ,ÉèÖò¥·ÅÈÝÆ÷µÄ¿í¸ß±È, ÉèÖúó, »á¸ù¾Ý¿í¸ß±ÈµÈ±ÈÀýËõ·Åµ½µ±Ç°viewËùÔÚlayoutÖÐ;
  Ò²¿ÉÒÔÔÚ²¥·ÅÔÝͣʱ, ÖØÐ´²¼¾Ö´Ë²¥·ÅÈÝÆ÷(relayout);
²ÎÊý£º
? ratio ¿í¸ß±È;
? listener ÖØÐ²¼¾Öºó, ÊÊÅäµ½layoutºóµÄ»Øµ÷;
  1. public void onCreateAsync(List<LSOAsset> arrays, OnCreateListener listener)
 ¹¦ÄÜ£º
 ? ÉèÖò¥·ÅÈÝÆ÷µÄ×ÊÔ´
 ²ÎÊý£º
 ? arrays ÈÝÆ÷×ÊÔ´Êý×é, Ö§³ÖͼƬºÍÊÓÆµ.
 ? listener ĬÈÏ»áÒÔµÚÒ»¸öͼƬ»òÊÓÆµµÄ¿í¶ÈΪ²Î¿¼,µÈ±ÈÀýËõ·Åµ±Ç°²¥·ÅÈÝÆ÷ºó»Øµ÷;
  1. public void onCreateAsync(List<LSOAsset> arrays,int width, int height, OnCreateListener listener)
 ¹¦ÄÜ£º
 ? ÉèÖò¥·ÅÈÝÆ÷×ÊÔ´, ²¢ÉèÖÿí¶ÈºÍ¸ß¶È
 ²ÎÊý£º
 ? arrays ÊäÈëµÄͼƬ»òÊÓÆµ×ÊÔ´;
 ? width ²¥·ÅÈÝÆ÷µÄ¿í¶È
 ? height ²¥·ÅÈÝÆ÷µÄ¸ß¶È
 ? listener ¸ù¾ÝÉèÖõĸ߶ȺͿí¶È, ÖØÐµȱÈÀý²¼¾Öµ±Ç°view, ²¼¾Öºó·µ»Ø¼àÌý;
  1. public void onCreateAsync(int width,int height, OnCreateListener listener)
 ¹¦ÄÜ£º
 ? ÉèÖÃÈÝÆ÷µÄ¿í¶ÈºÍ¸ß¶È, ÔÚ²¥·ÅÉèÖÃ, ²»¿ÉÒÔÓÃÀ´³õʼ»¯²¥·ÅÆ÷;
 ? ÔÚµÚÒ»´ÎÖ®ºóÉèÖÃ
 ²ÎÊý£º
 ? width ¿í¶È
 ? height ¸ß¶È
 ? listener ÊÊÅ䵱ǰviewºóµÄ¼àÌý;
  1. public void onResumeAsync(OnResumeListener listener)
 ¹¦ÄÜ£º
 ? ÔÚActivityµÄ onResumeÖе÷ÓÃ, ÓÃÀ´Ö´ÐÐactivityµÄ·µ»ØÊ¼þ;
 ²ÎÊý£º
 ? listener Òì²½»Øµ÷;
  1. public void onPause()
 ¹¦ÄÜ£º
 ? ÔÚActivityÖеÄonPauseÖе÷ÓÃ;
  1. public void onDestroy()
 ¹¦ÄÜ£º
 ? ÔÚActivityµÄonDestroyÖе÷ÓÃ
  1. public void prepareConcatAssets(OnAddAssetProgressListener listener)
 ¹¦ÄÜ£º
 ? ÔÚµ±Ç°View²¼¾ÖÍê±Ïºó, ×¼±¸µ±Ç°²¥·ÅÆ÷;
 ²ÎÊý£º
 ? listener ÄÚ²¿»á¿ªÆôÒ»¸öÏß³Ì, ÄÚ²¿¿ªÆôÍê±ÏºóµÄ»Øµ÷;
  1. public void insertConcatAssetAtCurrentTime(List<LSOAsset> assetArray, OnAddAssetProgressListener listener1)
 ¹¦ÄÜ£º
 ? ÔÚµ±Ç°Ê±¼äµã²åÈëͼƬ»òÊÓÆµ
 ²ÎÊý£º
 ? assetArray ²åÈëµÄͼƬ»òÊÓÆµÊý×é
 ? listener1 ²åÈëÍê±ÏºóµÄ»Øµ÷;
  1. public void insertConcatAssetWithTime(List<LSOAsset> assetArray, long atCompUs, OnAddAssetProgressListener listener1)
 ¹¦ÄÜ£º 
 ? ÔÚÖ¸¶¨µÄʱ¼äµã²åÈëͼƬ»òÊÓÆµ.
 ? ÄÚ²¿Á÷³ÌÊÇ:
 ? ÏÈÕÒÖ¸¶¨Ê±¼äµã ÔÚij¸öͼ²ãʱ¼ä¶ÎÄÚ.
 ? ÕÒµ½Í¼²ãºó, Èç¹ûʱ¼äµãÔÚͼ²ãǰ°ë²¿·Ö,ÔòÏòǰ²åÈë; Èçºó°ë²¿·Ö,ÔòÏòºó²åÈë;
 ²ÎÊý£º
 ? assetArray ²åÈëµÄͼƬ»òÊÓÆµÊý×é
 ? atCompUs ÔÚÖ¸¶¨µÄʱ¼äµã
 ? listener1 Òì²½²åÈëÍê±ÏºóµÄ»Øµ÷;
  1. public void replaceConcatLayerAsync(LSOAsset asset, LSOLayer replaceLayer, OnAddAssetProgressListener listener)
 ¹¦ÄÜ£º 
 ? Ìæ»»Æ´½Óͼ²ã;
 ²ÎÊý£º
 ? asset        ×ÊÔ´
 ? replaceLayer ±»Ìæ»»µÄͼ²ã
 ? listener     Òì²½Ìæ»»;
  1. public LSOLayer getCurrentConcatLayerByTime(long compUs)
 ¹¦ÄÜ£º  
 ? »ñȡָ¶¨Ê±¼äµãµÄÆ´½Óͼ²ã
 ²ÎÊý£º
 ? compUs  Ö¸¶¨Ê±¼äµã, µ¥Î»Î¢Ãë; 1Ãë=1000*1000΢Ãë
 ? @return ·µ»ØÍ¼²ã¶ÔÏó
  1. public void addAssetAsync(LSOAsset asset, long atCompUs,OnAddAssetProgressListener listener1)
 ¹¦ÄÜ£º 
 ? ÔÚÆ´½Ó²ãÉϵþ¼ÓÒ»¸ö×ÊÔ´;
 ²ÎÊý£º
 ? asset ͼƬ»òÊÓÆµ×ÊÔ´
 ? atCompUs Ö¸¶¨Ê±¼äµã
 ? listener1 Òì²½Ôö¼ÓÍê±ÏºóµÄ»Øµ÷¼àÌý;
  1. public void addVideoEffectAsync(LSOAsset asset, long atCompUs, boolean preview, OnAddAssetProgressListener listener1)
 ¹¦ÄÜ£º 
 ? ÔÚÖ¸¶¨Ê±¼äµãÔö¼ÓÒ»¸öÊÓÆµÌØÐ§, Ôö¼Óºó, ͨ¹ýÒì²½·µ»ØÒ»¸öLSOLayer¶ÔÏó;
 ²ÎÊý£º
 ? asset Ò»¸öcolorºÍÒ»¸ömask×é³ÉµÄ͸Ã÷ÊÓÆµ¶¯»­×ÊÔ´, ¿í¸ß:×î´ó720p, ʱ³¤:×î´ó5ÃëÖÓ;
 ? atCompUs  ÔÚÖ¸¶¨Ê±¼äµã
 ? preview   ²åÈëºó, ÊÇ·ñÔ¤ÀÀ
 ? listener1 ²åÈëÍê±ÏºóµÄ»Øµ÷,»Øµ÷ÖÐ
  1. public LSOLayer addBitmapLayer(String path, long atCompUs)
 ¹¦ÄÜ£º 
 ? ÔÚÆ´½Ó²ãÉϵþ¼ÓÒ»¸öͼƬͼ²ã

 ²ÎÊý£º
 ? path ͼƬµÄÍêÕû·¾¶
 ? atCompUs ÔÚÖ¸¶¨Ê±¼äµãÔö¼Ó, µ¥Î»Î¢Ãë
  1. public LSOLayer addBitmapLayer(Bitmap bmp, long atCompUs)
 ¹¦ÄÜ£º 
 ? Ôö¼ÓͼƬͼ²ã,
 ²ÎÊý£º
 ? bmp ͼƬ¶ÔÏó;
 ? atCompUs ÔÚÖ¸¶¨Ê±¼äµãÔö¼Ó,µ¥Î»Î¢Ãë;
  1. public LSOLayer addGifLayer(String gifPath, long atCompUs)
 ¹¦ÄÜ£º 
 ? ÔÚÆ´½Ó²ãÉÏ, Ôö¼ÓÒ»¸öGifͼ²ã
 ²ÎÊý£º
 ? gifPath gifͼ²ã·¾¶
 ? atCompUs ÔÚÖ¸¶¨Ê±¼äµãÔö¼Ó,µ¥Î»Î¢Ãë;
  1. public LSOLayer addGifLayer(LSOAsset asset, long atCompUs)
 ¹¦ÄÜ£º 
 ? ÔÚÆ´½Ó²ãÉÏ, Ôö¼ÓÒ»¸öGifͼ²ã
 ²ÎÊý£º
 ? asset gifÎļþµÄ·¾¶
 ? atCompUs ÔÚÖ¸¶¨Ê±¼äµãÔö¼Ó,µ¥Î»Î¢Ãë;
 ? @return ·µ»ØLSOLayerͼ²ã¶ÔÏó. ´Ë¶ÔÏó¿ÉÉèÖÃͼ²ãµÄÒÆ¶¯ÐýתËõ·ÅµÈ¹¦ÄÜ.
  1. public LSOAudioLayer addAudioLayer(String path, long startTimeOfComp)
 ¹¦ÄÜ£º 
 ? Ôö¼ÓÉùÒôͼ²ã;
 ²ÎÊý£º
 ? path            ÉùÒôµÄÍêÕû·¾¶;
 ? startTimeOfComp ´ÓºÏ³ÉµÄʲôλÖÿªÊ¼Ôö¼Ó;
 ? @return ·µ»ØÉùÒô¶ÔÏó, ¿ÉÒÔÉèÖÃÉùÒôµÄÒôÁ¿, Ñ­»·µÈ¹¦ÄÜ;
  1. public void removeLayerAsync(LSOLayer layer)
 ¹¦ÄÜ£º 
 ? Ò첽ɾ³ýͼ²ã;
 ? ɾ³ý³É¹¦ºó, »á´¥·¢ÈÝÆ÷ʱ³¤»Øµ÷, Ôڻص÷ÖÐÄã¿ÉÒÔÖØÐ²¼¾Öʱ¼äÖá
 ²ÎÊý£º
 ? layer ͼ²ã¶ÔÏó;
  1. public void removeAllOverlayLayersAsync()
¹¦ÄÜ£º 
 ? ɾ³ýËùÓеĵþ¼Óͼ²ã.
 ? µþ¼Óͼ²ãÓÐ:ͼƬͼ²ã, gifͼ²ã, ͼƬÐòÁÐͼ²ãµÈ;
  1. public void removeAudioLayerAsync(LSOAudioLayer layer)
 ¹¦ÄÜ£º 
 ? ɾ³ýÉùÒôͼ²ã
 ²ÎÊý£º
 ? layer
  1. public void removeALLAudioLayer()
 ¹¦ÄÜ£º 
 ? ɾ³ýËùÓеÄÔö¼ÓµÄÉùÒôͼ²ã;
  1. public boolean isPlaying()
 ¹¦ÄÜ£º 
 ? »­ÃæÊÇ·ñÔÚ²¥·Å
 ²ÎÊý£º
 ? @return ÊÇ·ñÔÚ²¥·Å
  1. public boolean isRunning()
 ¹¦ÄÜ£º 
 ? µ±Ç°²¥·ÅÆ÷ÊÇ·ñÔÚÔËÐÐ.
 ? ºÏ³ÉÊÇÒ»¸öÏß³Ì, ´Ë·µ»ØµÄÊǵ±Ç°Ïß³ÌÊÇ·ñÔÚÔËÐÐ,
 ? Ïß³ÌÔËÐв»Ò»¶¨»­ÃæÔÚ²¥·Å,ÓпÉÄÜ»­ÃæÔÝÍ£;
 ²ÎÊý£º
 ? @return Ïß³ÌÊÇ·ñÔÚÔËÐÐ
  1. public boolean isExporting()
 ¹¦ÄÜ£º 
 ? ÊÇ·ñÔÚµ¼³ö;
 ²ÎÊý£º
 ? @return 
  1. public long getCurrentPositionUs()
 ¹¦ÄÜ£º 
 ? »ñÈ¡µ±Ç°²¥·ÅÆ÷µÄʱ¼ä.
 ²ÎÊý£º
 ? @return µ±Ç°Ê±¼ä, µ¥Î»Î¢Ãë
  1. public List<LSOLayer> getAllConcatLayers()
 ¹¦ÄÜ£º 
 ? »ñÈ¡²¥·ÅÆ÷µÄËùÓÐÆ´½Óͼ²ã;
 ²ÎÊý£º
 ? @return ͼ²ãlist Æ´½Óͼ²ã;
  1. public List<LSOLayer> getAllOverLayLayers()
 ¹¦ÄÜ£º 
 ? »ñÈ¡²¥·ÅÆ÷ÖеÄËùÓеþ¼Ó²ã
 ²ÎÊý£º
 ? @return ͼ²ãÊý×é, µþ¼ÓµÄͼ²ã;
  1. public List<LSOAudioLayer> getAllAudioLayers()
¹¦ÄÜ£º 
 ? »ñÈ¡²¥·ÅÆ÷ÖеÄËùÓÐÉùÒôͼ²ã
  1. public void setOnBeforeRenderFrameListener(OnLanSongSDKBeforeRenderFrameListener listener)
 ¹¦ÄÜ£º 
 ? ÔÚÿһ֡»æÖÆÇ°µÄ»Øµ÷, ÀïÃæÃ»Óо­¹ýhandler, ÄãÔö¼ÓµÄ´úÂë, ÔÚAG¿­·¢K8¹ú¼ÊrenderÏß³ÌÖÐÖ´ÐÐ,
 ²ÎÊý£º
 ? listener ·µ»ØµÄÊÇʱ¼ä´Á, µ¥Î»us;
  1. public void setOnDurationChangedListener(OnLanSongSDKDurationChangedListener listener)
 ¹¦ÄÜ£º 
 ? ÈÝÆ÷µÄ×Üʱ³¤¸Ä±ä¼àÌý£»²¥·ÅÆ÷»áÔÚÆ´½Ó²ã²Ã¼ô, ÉèÖÃÏÔʾʱ¼ä, ת³¡,±äËٵȳ¡ºÏÏÂ, ʱ³¤¸Ä±ä;
 ? ·µ»ØµÄÊǵ±Ç°×Üʱ³¤;
 ²ÎÊý£º
 ? listener ×Üʱ³¤¸Ä±ä¼àÌý, ·µ»ØµÄlongÀàÐ͸ıäºóµÄµ±Ç°×Üʱ³¤
  1. public void setOnLanSongSDKPlayProgressListener(OnLanSongSDKPlayProgressListener listener)
 ¹¦ÄÜ£º 
 ? ²¥·Å½ø¶È»Øµ÷
 ? ¼àÌýÖеÄÁ½¸ö²ÎÊýÊÇ: onLanSongSDKExportProgress(long ptsUs, int percent);
 ? ·Ö±ð¶ÔÓ¦ µ±Ç°´¦ÀíµÄʱ¼ä´Á ºÍ°Ù·Ö±È;
 ? ÔÚseek»òpauseµÄʱºò,´Ë¼àÌý²»µ÷ÓÃ;
 ²ÎÊý£º
 ? listener
  1. public void setOnTimeChangedListener(OnLanSongSDKTimeChangedListener listener)
 ¹¦ÄÜ£º 
 ? ÈÝÆ÷µÄµ±Ç°²¥·Åʱ¼ä¸Ä±ä»Øµ÷;
 ? Ö»ÒªÊǸıäÁË, ²»¹ÜÊÇseekµÄ¸Ä±ä,»¹ÊÇ×Ô¶¯²¥·ÅµÄ¸Ä±ä,¶¼Ö´ÐÐÕâÀï;
 ²ÎÊý£º
 ? listener ʱ¼ä¸Ä±ä¼àÌý longÀàÐÍÊǵ±Ç°Ê±¼ä´Á, intÀàÐÍÊǵ±Ç°Ê±¼ä´ÁÕ¼×Üʱ³¤µÄ°Ù·Ö±È;
  1. public void setOnPlayCompletedListener(OnLanSongSDKPlayCompletedListener listener)
 ¹¦ÄÜ£º 
 ? ÊÓÆµ²¥·ÅÍê³É½ø¶È;
 ²ÎÊý£º
 ? listener ²¥·ÅÍê³É¼àÌý
  1. public void setOnExportProgressListener(OnLanSongSDKExportProgressListener listener)
 ¹¦ÄÜ£º 
 ? µ¼³ö½ø¶È»Øµ÷;
 ? ¼àÌýÖеÄÁ½¸ö²ÎÊýÊÇ: onLanSongSDKExportProgress(long ptsUs, int percent);
 ? ·Ö±ð¶ÔÓ¦ µ±Ç°´¦ÀíµÄʱ¼ä´Á ºÍ°Ù·Ö±È;
 ²ÎÊý£º
 ? listener µ¼³ö½ø¶È¼àÌý, longÀàÐÍÊǵ±Ç°ÕýÔÚ´¦ÀíµÄʱ¼ä´Á, intÀàÐÍÊǽø¶È°Ù·Ö±È;
  1. public void setOnExportCompletedListener(OnLanSongSDKExportCompletedListener listener)
 ¹¦ÄÜ£º 
 ? µ¼³öÍê³É»Øµ÷;
 ? Íê³Éºó, ÓÐ void onLanSongSDKExportCompleted(String dstVideo);
 ? ¶ÔÓ¦µÄÊÇ:·µ»ØÍê³ÉºóµÄÄ¿±êÊÓÆµÂ·¾¶;
 ²ÎÊý£º
 ? listener  µ¼³öÍê³É¼àÌý, ·µ»ØStringÀàÐ͵ĵ¼³öÊÓÆµÍêÕû·¾¶;
  1. public void setOnErrorListener(OnLanSongSDKErrorListener listener)
 ¹¦ÄÜ£º 
 ? ´íÎó¼àÌý
  1. public boolean start()
 ¹¦ÄÜ£º 
 ? ¿ªÊ¼²¥·Å/»Ö¸´²¥·Å;
  1. public void startExport(LSOExportType type)
 ¹¦ÄÜ£º 
 ? ¿ªÊ¼µ¼³ö
 ²ÎÊý£º
 ? type µ¼³öö¾ÙÀàÐÍ
  1. public void seekToTimeUs(long timeUs)
 ¹¦ÄÜ£º 
 ? ¶¨Î»µ½Ä³¸öλÖÃ.
 ²ÎÊý£º
 ? timeUs ʱ¼ä, µ¥Î»Î¢Ãë;
  1. public void pause()
¹¦ÄÜ£º 
 ? ²¥·ÅÔ¤ÀÀÔÝÍ£
  1. public long getDurationUs()
¹¦ÄÜ£º 
 ? »ñÈ¡µ±Ç°²¥·ÅÆ÷µÄ×Üʱ³¤;
²ÎÊý£º
@return ʱ¼ä, µ¥Î»Î¢Ãë;
  1. public void setLooping(boolean is)
 ¹¦ÄÜ£º 
 ? ÉèÖÃÈÝÆ÷Ñ­»·²¥·Å;
 ²ÎÊý£º
 ? is ÊÇ·ñÑ­»·;
  1. public void cancelExport()
¹¦ÄÜ£º 
 ? È¡Ïûµ¼³ö
  1. public void cancel()
¹¦ÄÜ£º 
 ? È¡Ïûµ±Ç°ºÏ³É.
 ? È¡Ïûºó, »á°ÑÄÚ²¿Ïß³ÌÈ«²¿Í˳ö, ËùÓÐÔö¼ÓµÄͼ²ã¶¼»áÊÍ·Å;
  1. public void setFrameRate(int frameRate)
¹¦ÄÜ£º 
 ? ÉèÖõ¼³öÖ¡ÂÊ
 ? ²»½¨ÒéʹÓÃ

 ²ÎÊý£º
 ? frameRate Ö¡ÂÊ×îС20,×î´óÊÇ60
  1. public void setExportBitRate(int bitRate)
 ¹¦ÄÜ£º 
 ? ÉèÖõ¼³öʱµÄÂëÂÊ,
 ? ²»½¨ÒéʹÓÃ
 ²ÎÊý£º
 ? bitRate ÂëÂÊ, ×îСÊÇ300K,²»½¨ÒéʹÓÃ;

2¡¢AndroidÊÓÆµ±à¼­Í¼²ãLSOLayerÀà˵Ã÷
  1. public String getOriginalPath()
 ¹¦ÄÜ£º 
 ? »ñȡԭÊÓÆµ/ͼƬµÄ·¾¶
 ²ÎÊý£º
 ? @return
  1. public long getOriginalDurationUs()
 ¹¦ÄÜ£º 
 ? »ñÈ¡ÊÓÆµ/ͼƬµÄԭʼʱ³¤
 ²ÎÊý£º
 ? @return
  1. public int getOriginalWidth()
 ¹¦ÄÜ£º 
 ? »ñȡԭʼ¿í¶È
 ²ÎÊý£º
 ? @return
  1. public int getOriginalHeight()
 ¹¦ÄÜ£º 
 ? »ñȡԭʼ¸ß¶È
 ²ÎÊý£º
 ? @return
  1. public long getDisplayDurationUs()
 ¹¦ÄÜ£º 
 ? »ñÈ¡ÏÔʾʱ³¤;
 ? Èç¹û²¥·ÅÆ÷ÖÐÖ»ÓÐÒ»¸öÊÓÆµ»òͼƬ, Ôò´Ëʱ³¤µÈÓÚ²¥·ÅÆ÷µÄʱ³¤;
 ²ÎÊý£º
 ? @return
  1. public long getThumbnailDurationUs()
 ¹¦ÄÜ£º 
 ? »ñÈ¡ËõÂÔͼµÄÏÔʾʱ¼ä;
 ? ×¢: Òòת³¡µÈ¹¦ÄÜ,Æ´½Ó²ã¿ÉÄÜÓÐÖØµþÇøÓò. Òò´ËÏÔʾʱ³¤²»µÈÓÚËõÂÔͼµÄʱ³¤;

 ²ÎÊý£º
 ? @return
  1. public void setDisplayDurationUs(long durationUs)
 ¹¦ÄÜ£º 
 ? ÉèÖÃÏÔʾʱ³¤;
 ²ÎÊý£º
 ? durationUs
  1. public long getStartTimeOfComp()
 ¹¦ÄÜ£º
 ? »ñÈ¡µ±Ç°Í¼²ãÔÚ²¥·ÅÆ÷ÖеĿªÊ¼Ê±¼ä
 ²ÎÊý£º
 ? @return
  1. public void setCutDurationUs(long startUs, long endUs)
 ¹¦ÄÜ£º 
 ? ÉèÖÃÊÓÆµµÄ²Ã¼ôʱ³¤
 ²ÎÊý£º
 ? startUs ¿ªÊ¼²Ã¼ôʱ¼ä
 ? endUs ½áÊø²Ã¼ôʱ¼ä
  1. public long getCutStartTimeUs()
 ¹¦ÄÜ£º
 ? »ñÈ¡²Ã¼ô¿ªÊ¼Ê±¼ä
 ²ÎÊý£º
 ? @return
  1. public long getCutEndTimeUs()
 ¹¦ÄÜ£º
 ? »ñÈ¡²Ã¼ô½áÊøÊ±¼ä

 ²ÎÊý£º
 ? @return
  1. public void setCropRect(LSORect rect)
 ¹¦ÄÜ£º
 ? ÉèÖòüôÇøÓò;
 ²ÎÊý£º
 ? @param rect
  1. public void setCropRectToOriginal()
 ¹¦ÄÜ£º
 ? »Ö¸´µ½²»²Ã¼ô
  1. public void setCropRectPercent(float x, float y, float width, float height)
 ¹¦ÄÜ£º
 ? ÉèÖòüô°Ù·Ö±È.Õû¸ö»­Ãæ´Ó×óµ½ÓÒÊÇ0.0--1.0; ´ÓÉϵ½ÏÂÊÇ0.0--1.0;
 ²ÎÊý£º
 ? x  ¿í¶ÈµÄ¿ªÊ¼±ÈÀý
 ? y  ²Ã¼ô¸ßµÄ¿ªÊ¼±ÈÀý
 ? width ²Ã¼ô¿í¶ÈµÄ±ÈÀý
 ? height ²Ã¼ô¸ß¶ÈµÄ±ÈÀý
  1. public void setLooping(boolean is)
 ¹¦ÄÜ£º
 ? µþ¼Ó²ãÉèÖÃÑ­»·
 ²ÎÊý£º
 ?  is
  1. public void setStartTimeOfComp(long atCompUs)
 ¹¦ÄÜ£º
 ? ÉèÖõ±Ç°Í¼²ãÔÚ²¥·ÅÆ÷ÖеĿªÊ¼Ê±¼äµã;

 ²ÎÊý£º
 ? atCompUs
  1. public void setVisibility(boolean is)
 ¹¦ÄÜ£º
 ? ÉèÖÃÊÇ·ñÏÔʾ
 ²ÎÊý£º
 ? is
  1. public void setVisibility(int visibility)
 ¹¦ÄÜ£º
 ? ÉèÖÃÊÇ·ñÏÔʾ
 ? ÀàÐÍÊÇ LSOLayer.VISIBLE ºÍ LSOLayer.INVISIBLE
 ²ÎÊý£º
 ? visibility 
  1. public int getVisibility()
 ¹¦ÄÜ£º
 ? »ñÈ¡ÊÇ·ñÏÔʾ
 ²ÎÊý£º
 ? @return
  1. public void resetScaleSize()
 ¹¦ÄÜ£º
 ? »Ö¸´µ½Ëõ·ÅǰµÄ´óС
  1. public void setScaleType(LSOScaleType type)
 ¹¦ÄÜ£º
 ? ÉèÖÃËõ·Åö¾ÙÀàÐÍ.
 ? NONE: ÎÞËõ·ÅÐÎʽ.ÔòÄÚ²¿»á¸ù¾Ý²»Í¬µÄËØ²Ä,²ÉÓÃĬÈÏÐÎʽ;
 ? ORIGINAL: ԭʼ´óС,Ö±½Ó·ÅÈë, ²»×öÈÎÒâ´¦Àí;
 ? FILL_COMPOSITION, ºöÂÔ°Ù·Ö±È,°Ñ¿í¶ÈµÈÓÚÈÝÆ÷µÄ¿í¶È, ¸ß¶ÈµÈÓÚÈÝÆ÷µÄ¸ß¶È,ÌîÂúÕû¸öÈÝÆ÷,ÕâÑùÓÐЩ»­Ãæ¿ÉÄÜ»á±äÐÎ;
 ? CROP_FILL_COMPOSITION: ²Ã¼ôÌîÂú ·ÅÈëµ½ÈÝÆ÷ÖÐ;°ÑÊÓÆµµÄÖÐÐĵã·Åµ½ÈÝÆ÷µÄÖÐÐĵã,È»ºó °Ñ»­ÃæµÈ±ÈÀýÌáÌîÂúÕû¸öÈÝÆ÷,°Ñ¶àµÄ²¿·Ö²Ã¼ôµô.
 ? VIDEO_SCALE_TYPE:ÊÓÆµËõ·Åģʽ,Èç¹ûÊÓÆµ¿í¶È´óÓڸ߶È, Ôò¿í¶ÈºÍÈÝÆ÷¶ÔÆë, È»ºóµÈ±ÈÀýµ÷Õû¸ß¶È;Èç¹û¸ß¶È´óÓÚ¿í¶È, Ôò·´Ö®.
 ²ÎÊý£º
 ? type
  1. public void setScaledValue(float width, float height)
 ¹¦ÄÜ£º
 ? Ëõ·Åµ½µÄʵ¼ÊÖµ
 ²ÎÊý£º
 ? width
 ? height
  1. public float getScaleWidth()
 ¹¦ÄÜ£º
 ? »ñÈ¡Ëõ·ÅµÄ¿í¶È
 ²ÎÊý£º
 ? @return
  1. public float getScaleHeight()
 ¹¦ÄÜ£º
 ? »ñÈ¡Ëõ·ÅµÄ¸ß¶È
 ²ÎÊý£º
 ? @return
  1. public float getRotation()
 ¹¦ÄÜ£º
 ? »ñÈ¡Ðýת½Ç¶È.
 ²ÎÊý£º
 ? @return
  1. public void setRotation(float angle)
 ¹¦ÄÜ£º
 ? ÉèÖÃÐýת½Ç¶È
 ²ÎÊý£º
 ? angle
  1. public void setLayerMirror(boolean flipHorizontal, boolean flipVertical)
 ¹¦ÄÜ£º
 ? ÉèÖÃͼ²ãÊÇ·ñ¾µÏñ, ÉÏϾµÏñ, ×óÓÒ¾µÏñ.
 ²ÎÊý£º
 ? flipHorizontal ˮƽ¾µÏñ
 ? flipVertical ´¹Ö±¾µÏñ
  1. public void cancelLayerMirror()
 ¹¦ÄÜ£º
 ? È¡Ïû¾µÏñ
  1. public boolean isMirrorX()
 ¹¦ÄÜ£º
 ? ˮƽÊÇ·ñ¾µÏñ
 ²ÎÊý£º
 ? @return
  1. public boolean isMirrorY()
 ¹¦ÄÜ£º
 ? ´¹Ö±ÊÇ·ñ¾µÏñ
 ²ÎÊý£º
 ? @return
  1. public void setPosition(float xPos, float yPos)
 ¹¦ÄÜ£º
 ? ÉèÖõ±Ç°Í¼²ãÖÐÐĵãµÄ×ø±ê, xPosÊÇXÖáµÄ×ø±ê,yPosÊÇÉèÖÃYÖáµÄ×ø±ê.  
 ? ´Ë×ø±êÊÇÒÔ²¥·ÅÈÝÆ÷µÄ´óСΪ²Î¿¼, ±ÈÈçÈÝÆ÷µÄ´óСÊÇ1280x720, ÄúÉèÖÃÁË640,360 £¬Ôòͼ²ãÔÚ²¥·ÅÆ÷ÖоÓÖÐÏÔʾ
 ²ÎÊý£º
 ? xPos
 ? yPos
  1. public void setPosition(LSOLayerPosition position)
 ¹¦ÄÜ£º
 ? ÉèÖÃͼ²ãµÄö¾ÙλÖÃ;
 ? ö¾ÙÀàÐÍÓÐ: ×óÉÏ/×óÏÂ/ÓÒÉÏ/ÓÒÏÂ/¾ÓÖÐ/ÉÏ/ÏÂ/×ó/ÓÒ
  1. public float getPositionX()
 ¹¦ÄÜ£º
 ? »ñÈ¡µ±Ç°Í¼²ãÖÐÐĵãµÄλÖÃX
 ²ÎÊý£º
 ? @return  ºáÏò×ø±êÖÐÐĵã, Ïà¶ÔÓÚ²¥·ÅÈÝÆ÷±¾Éí¶øÑÔ;
  1. public float getPositionY()
 ¹¦ÄÜ£º
 ? »ñÈ¡µ±Ç°Í¼²ãÖÐÐĵãµÄλÖÃY
 ²ÎÊý£º
 ? @return ÊúÏò×ø±êÖÐÐĵã, Ïà¶ÔÓÚ²¥·ÅÈÝÆ÷±¾Éí¶øÑÔ
  1. public void setOpacityPercent(float percent)
 ¹¦ÄÜ£º
 ? ÉèÖÃ͸Ã÷°Ù·Ö±È;
 ²ÎÊý£º
 ? percent °Ù·Ö±È ·¶Î§´Ó0--1.0;
  1. public void setBrightnessPercent2X(float percent2X)
 ¹¦ÄÜ£º
 ? µ÷½Úµ±Ç°Í¼²ã»­ÃæµÄÁÁ¶È
 ²ÎÊý£º
 ? percent2X ·¶Î§ÊÇ0--2.0; 1.0ΪĬÈÏÖµ;
  1. public void setContrastFilterPercent2X(float percent2X)
 ¹¦ÄÜ£º
 ? µ÷½Úµ±Ç°Í¼²ã»­ÃæµÄ¶Ô±È¶È
 ²ÎÊý£º
 ? percent2X ·¶Î§ÊÇ0--2.0; 1.0ΪĬÈÏÖµ;
  1. public void setSaturationFilterPercent2X(float percent2X)
 ¹¦ÄÜ£º
 ? µ÷½Ú»­ÃæµÄ±¥ºÍ¶È;
 ²ÎÊý£º
 ? percent2X ·¶Î§ÊÇ0--2.0; 1.0ΪĬÈÏÖµ;
  1. public void setWhiteBalanceFilterPercent2X(float percent2X)
 ¹¦ÄÜ£º
 ? µ÷½Ú»­ÃæµÄ°×ƽºâ
 ²ÎÊý£º
 ? percent2X ·¶Î§ÊÇ0--2.0; 1.0ΪĬÈÏÖµ;
  1. public void setHueFilterPercent2X(float percent2X)
 ¹¦ÄÜ£º
 ? µ÷½Ú»­ÃæµÄÉ«¶È

 ²ÎÊý£º
 ? percent2X ·¶Î§ÊÇ0--2.0; 1.0ΪĬÈÏÖµ;
  1. public void setExposurePercent2X(float percent2X)
 ¹¦ÄÜ£º
 ? µ÷½Ú»­ÃæµÄÆØ¹â¶È
 ²ÎÊý£º
 ? percent2X ·¶Î§ÊÇ0--2.0; 1.0ΪĬÈÏÖµ;
  1. public void setBeautyLevel(float level)
 ¹¦ÄÜ£º
 ? ÉèÖû­ÃæµÄĥƤ¼¶±ð 0.0--1.0;
 ²ÎÊý£º
 ? level µÈ¼¶ 0.0ÊDz»Ä¥Æ¤, 1.0ÊÇ×î¸ßĥƤ
  1. public void setFilter(LanSongFilter filter)
 ¹¦ÄÜ£º
 ? ÉèÖÃÂ˾µ, ÉèÖÃʱ, »á°ÑÉÏÒ»´ÎÉèÖõÄÂ˾µÉ¾³ý; Èç¹û²»Ïëɾ³ýÔòÓÃaddFilter;
 ²ÎÊý£º
 ? filter Â˾µ¶ÔÏó, ´Ë¶ÔÏ󲻿ÉͬʱÉèÖÃΪ¶à¸öͼ²ãÖÐ.
  1. public void removeFilter(LanSongFilter filter)
 ¹¦ÄÜ£º
 ? ÒÆ³öÂ˾µ
 ²ÎÊý£º
 ? filter Ôö¼ÓµÄÂ˾µ¶ÔÏó
  1. public void addFilter(LanSongFilter filter)
 ¹¦ÄÜ£º
 ? Ôö¼ÓÂ˾µ,ÈçÔö¼Ó¶à¸ö, Ôò¶à¸öÂ˾µÊǼ¶ÁªµÄ¹ØÏµ, ¼´»­Ãæ°ÑÖ´ÐÐÉÏÒ»¸öÂ˾µµÄ½á¹û, ×÷ΪÏÂÒ»¸öÂ˾µµÄÊäÈë;
 ²ÎÊý£º
 ? filter Â˾µ¶ÔÏó
  1. public void removeAllFilter()
 ¹¦ÄÜ£º
 ? ɾ³ýËùÓÐÂ˾µ
  1. public void setVideoSpeed(float speed)
 ¹¦ÄÜ£º
 ? ÉèÖÃÊÓÆµËÙ¶È.
 ²ÎÊý£º
 ? speed ÊÓÆµËÙ¶ÈÖµ, ·¶Î§0.1--10.0;
  1. public float getVideoSpeed()
 ¹¦ÄÜ£º
 ? »ñÈ¡ÊÓÆµËÙ¶È;
 ²ÎÊý£º
 ? @return ·µ»ØËÙ¶ÈÖµ
  1. public void setVideoReverseAsync(boolean reverse, OnVideoReverseListener listener)
 ¹¦ÄÜ£º
 ? Òì²½ÉèÖÃÊÓÆµµ¹Ðò
 ²ÎÊý£º
 ? reverse ÊÇ·ñµ¹Ðò
 ? listener µ¹ÐòºóµÄ¼àÌý;
  1. public boolean isVideoReverse()
 ¹¦ÄÜ£º
 ? µ±Ç°ÊÓÆµÊÇ·ñµ¹Ðò
 ²ÎÊý£º
 ? @return ÊÇ·ñµ¹Ðò
  1. public LSOEffect addEffectAtCompTimeUs(String jsonPath, long compUs)
 ¹¦ÄÜ£º
 ? ÓÃjsonµÄÐÎʽÔö¼ÓÌØÐ§
 ²ÎÊý£º
 ? jsonPath Ôö¼ÓÒ»¸öÌØÐ§json·¾¶
 ? compUs ´Ó²¥·ÅÆ÷µÄʲôʱ¼äµã¿ªÊ¼Ôö¼Ó
 ? @return Ôö¼Óºó, ·µ»ØÌØÐ§¶ÔÏó, ¿ÉÉèÖÿªÊ¼Ê±¼äºÍ²¥·Åʱ³¤;
  1. public LSOEffect addEffectAtLayerHead(String jsonPath)
 ¹¦ÄÜ£º
 ? ÔÚͼ²ãµÄÍ·²¿Ôö¼ÓÒ»¸öÌØÐ§
 ²ÎÊý£º
 ? jsonPath json·¾¶
 ? @return Ôö¼Óºó, ·µ»ØÌØÐ§¶ÔÏó, ¿ÉÉèÖò¥·Åʱ³¤;
  1. public LSOEffect addEffectAtLayerEnd(String jsonPath)
 ¹¦ÄÜ£º
 ? ÔÚͼ²ãµÄβ²¿Ôö¼ÓÒ»¸öÌØÐ§
 ²ÎÊý£º
 ? jsonPath ÌØÐ§Â·¾¶
 ? @return Ôö¼Óºó, ·µ»ØÌØÐ§¶ÔÏó, ¿ÉÉèÖò¥·Åʱ³¤;
  1. public List<LSOEffect> getAllEffectList()
 ¹¦ÄÜ£º
 ? »ñÈ¡Ôö¼ÓµÄËùÓÐÌØÐ§
 ²ÎÊý£º
 ? @return ËùÓÐÌØÐ§Êý×é
  1. public void removeAllEffectList()
 ¹¦ÄÜ£º
 ? ÒÆ³öµ±Ç°Í¼²ãµÄËùÓÐÌØÐ§
  1. public void removeEffect(LSOEffect effect)
 ¹¦ÄÜ£º
 ? ÒÆ³öÖ¸¶¨µÄÌØÐ§
 ²ÎÊý£º
 ? effect
  1. public void playEffect(LSOEffect effect)
 ¹¦ÄÜ£º
 ? ²¥·ÅÔ¤ÀÀÌØÐ§
 ²ÎÊý£º
 ? effect Ö¸¶¨²¥·ÅµÄÌØÐ§¶ÔÏó,²¥·Åºó»á»Øµ½²¥·ÅǰµÄλÖÃ
  1. public LSOAnimation addAnimationAtCompTimeUs(String jsonPath, long compUs)
 ¹¦ÄÜ£º
 ? Ôö¼Ó¶¯»­
 ²ÎÊý£º
 ? jsonPath json¸ñʽµÄ·¾¶
 ? compUs ´Ó²¥·ÅÆ÷µÄʱ¼äµãÔö¼Ó
 ? @return ·µ»Ø¶¯»­¶ÔÏó, ¿ÉÉèÖÿªÊ¼Ê±¼äºÍ²¥·Åʱ³¤
  1. public LSOAnimation setAnimationAtLayerHead(String jsonPath)
 ¹¦ÄÜ£º
 ? ÔÚͼ²ãµÄÍ·²¿Ôö¼ÓÒ»¸ö¶¯»­
 ²ÎÊý£º
 ? jsonPath json¶¯»­Â·¾¶
 ? @return ·µ»Ø¶¯»­¶ÔÏó, ¿ÉÉèÖò¥·Åʱ³¤
  1. public LSOAnimation setAnimationAtLayerEnd(String jsonPath)
 ¹¦ÄÜ£º
 ? ÔÚͼ²ãµÄβ²¿Ôö¼ÓÒ»¸ö¶¯»­
 ²ÎÊý£º
 ? jsonPath ¶¯»­Â·¾¶
 ? @return ·µ»Ø¶¯»­¶ÔÏó, ¿ÉÉèÖò¥·Åʱ³¤
  1. public List<LSOAnimation> getAllAnimationList()
 ¹¦ÄÜ£º
 ? »ñÈ¡ËùÓж¯»­
 ²ÎÊý£º
 ? @return ËùÓж¯»­¶ÔÏó
  1. public void removeAllAnimationList()
 ¹¦ÄÜ£º
 ? ÒÆ³öËùÓж¯»­
  1. public void removeAnimation(LSOAnimation animation)
 ¹¦ÄÜ£º
 ? ÒÆ³öÖ¸¶¨¶¯»­
 ²ÎÊý£º
 ? animation Ö¸¶¨¶¯»­¶ÔÏó
  1. public void playAnimation(LSOAnimation animation)
 ¹¦ÄÜ£º
 ? ²¥·Å¶¯»­
 ²ÎÊý£º
 ? animation ¶¯»­¶ÔÏó
  1. public boolean setTransitionMaskPath(String maskJsonPath)
 ¹¦ÄÜ£º
 ? ÉèÖÃת³¡Â·¾¶
 ²ÎÊý£º
 ? maskJsonPath ÕÚÕÖת³¡Â·¾¶
 ? @return ¿ÉÒÔÉèÖ÷µ»Øtrue; ·ñÔò·µ»Øfalse
  1. public void setTransitionDurationUs(long duration)
 ¹¦ÄÜ£º
 ? ÉèÖÃת³¡Ê±³¤
 ²ÎÊý£º
 ? duration ʱ³¤,·¶Î§100*100---3*1000*1000;
  1. public void playTransition()
 ¹¦ÄÜ£º
 ? ¿ªÊ¼²¥·Åת³¡
  1. public void cancelTransition()
 ¹¦ÄÜ£º
 ? È¡Ïûת³¡
  1. protected long getTransitionDurationUs()
 ¹¦ÄÜ£º
 ? »ñȡת³¡Ê±³¤;
 ²ÎÊý£º
 ? @return
  1. public long getTransitionStartTimeOfComp()
 ¹¦ÄÜ£º
 ? »ñÈ¡´ÓºÏ³ÉµÄ¿ªÊ¼Ê±¼ä;
 ²ÎÊý£º
 ? @return
  1. public LSOMosaicRect getMosaicRect1()
 ¹¦ÄÜ£º
 ? »ñȡһ¸öÂíÈü¿ËÇøÓò, ·µ»ØÂíÈü¿Ë¶ÔÏó,
 ? ¿ÉÉèÖÃÂíÈü¿ËÇøÓò, ÊÇ·ñ½ûÖ¹,ÂíÈü¿ËÏñËØµãµÄ¿í¶È;

 ²ÎÊý£º
 ? @return ÂíÈü¿Ë¶ÔÏó
  1. public void setAudioVolume(float volume)
 ¹¦ÄÜ£º
 ? ÉèÖÃÒôƵÒôÁ¿
  1. public float getAudioVolume()
 ¹¦ÄÜ£º
 ? »ñÈ¡ÒôƵÒôÁ¿
  1. public void setBackGroundBlurLevel(float level)
 ¹¦ÄÜ£º
 ? ÉèÖñ³¾°Ä£ºý¼¶±ð
 ? 1.0ÊÇÇá΢ģºý,ë²£Á§Ä£ºý. 8.0fÊÇÍêÈ«,Éî¶ÈÄ£ºý;   0.0ÊÇɾ³ýÄ£ºýЧ¹û;
 ²ÎÊý£º
 ? level
  1. public void setBackGroundBitmap(String bitmapPath)
 ¹¦ÄÜ£º
 ? ÉèÖñ³¾°Í¼Æ¬
 ²ÎÊý£º
 ?  bitmapPath
  1. public void setBackGroundColor(int color)
 ¹¦ÄÜ£º
 ? ÉèÖñ³¾°ÑÕÉ«
 ²ÎÊý£º
 ? color
  1. public float getMaxBlurLevel()
 ¹¦ÄÜ£º
 ? »ñÈ¡×î´óÄ£ºýϵÊý, µ±Ç°·µ»ØµÄÊÇ8.0;
  1. public void getThumbnailAsync(OnLanSongSDKThumbnailBitmapListener listener)
 ¹¦ÄÜ£º
 ? Òì²½»ñÈ¡ËõÂÔͼ
 ²ÎÊý£º
 ? listener
  1. public List<Bitmap> getThumbnailListWithCount(int count)
 ¹¦ÄÜ£º
 ? »ñÈ¡ËõÂÔͼ¸öÊý, ´Ë·½·¨Ò»¶¨ÔÚgetThumbnailAsyncÍê³ÉºóÉèÖÃ
 ²ÎÊý£º
 ? count »ñÈ¡µÄͼƬÕÅÊý
 ? @return ·µ»ØbitmapÊý×é;

3.16.2 IOSÊÓÆµ±à¼­SDK¸ÅÊö:

  1. AG¿­·¢K8¹ú¼Ê°ÑÊÓÆµ±à¼­³éÏóΪÁ½¸öÀà, Ò»¸öÊDZ༭ԤÀÀÀàLSOEditPlayer, Ò»¸öͼ²ãÀàLSOLayer¡£
  2. ²¥·ÅÔ¤ÀÀÀàLSOEditPlayer,ºÍAVPlayerÀàËÆ, ÐèÒªÒ»¸ö²¥·Å´°¿ÚUIView,±¾ÖÊÊÇÒ»¸ö±à¼­²¥·ÅÆ÷,¿ÉÍê³ÉËØ²ÄµÄ:²åÈë»òɾ³ý,Ìæ»»,¸´ÖÆ,·Ö¸î,Æ´½Ó,µþ¼Ó,¶¨Î»,²¥·Å/ÔÝÍ£µÈʵʱÈÝÆ÷Ô¤ÀÀµÄ¹¦ÄÜ¡£
  3. ͼ²ãÀàLSOLayer: ͼƬ/ÊÓÆµ/Îı¾/ÌØÐ§/GIFµÈÔö¼Óµ½²¥·ÅÆ÷Öкó,AG¿­·¢K8¹ú¼Ê°ÑËû´¦Àí³ÉÒ»²ã»­Ãæ ,Ôö¼ÓÒ»¸ö, ¾ÍÊÇÔö¼ÓÒ»²ã»­Ãæ;Ôö¼Óʱ»á·µ»ØLSOLayer¶ÔÏó,ÓÃÕâ¸ö¶ÔÏó¿ÉÒÔÉèÖÃ:ʱ¼äµã,λÖÃ,¿í¸ß,½Ç¶È,¾µÏñ,µ¹Ðò,Â˾µ,µ÷½Ú,ÃÀÑÕ,¶¯»­,ת³¡,ÌØÐ§µÈ¹¦ÄÜ¡£
  4. µ÷ÓÃÁ÷³ÌÊÇ: ´´½¨LSOEditPlayer¶ÔÏó, initʱ¿ÉÊäÈëͼƬ»òÊÓÆµµÄurl·¾¶ºÍ²¥·ÅÆ÷±ÈÀý,µÃµ½²¥·ÅÆ÷ÈÝÆ÷µÄ¿í¸ß,¸ù¾Ý¿í¸ß´´½¨LSODispLayView×÷Ϊ²¥·ÅÆ÷µÄÏÔʾ´°¿Ú, Ö®ºóÕý³£²¥·Å¼´¿É.
  5. ËØ²ÄÔö¼ÓµÄÐÎʽÓÐÁ½ÖÖ, Ò»ÖÖÊÇǰºóÆ´½Ó, Ò»ÖÖÊÇÉÏϵþ¼Ó, ʾÒâͼÈçÏÂ:

image

1¡¢IOSÊÓÆµ²¥·ÅLSOEditPlayerÀà˵Ã÷

1. - (id)initWithUrlArray:(NSArray<NSURL *> *)urlArray ratio:(LSOSizeRatio)ratio

 ¹¦ÄÜ£º
 ? ³õʼ»¯Õâ¸öÀà, ¿ÉÒÔÊÇÒ»¸öͼƬ»òÒ»¸öÊÓÆµ, Ò²¿ÉÒÔÊǶà¸öÊÓÆµ. ¿ÉÒÔÉèÖÃÕâ¸ö²¥·ÅÆ÷µÄ¿í¸ß±ÈÀý, µ±±ÈÀýÊÇԭʼʱ, ĬÈÏÓÃÊý×éÖеÚÒ»¸öurlµÄ¿í¸ßΪĬÈÏ¿í¸ß;
 ? µ±³õʼ»¯Ê§°Üºó, ·µ»Ønil, ´ó²¿·ÖÊÇûÓÐÊÚȨÎļþʱ»áʧ°Ü;
 ²ÎÊý£º
 ? urlArray Óû§Ñ¡ÖеÄÊÓÆµ/ͼƬ
 ? ratio ÈÝÆ÷µÄ±ÈÀý, Èç¹ûԭʼ±ÈÀý, ÔòÌîÈëLSOSizeRatio_ORIGINAL,±ÈÀýϵÊý;

2. - (void)setCompositionView:(LSODisplayView *)view;

 ¹¦ÄÜ£º
 ? Ôö¼ÓÔ¤ÀÀµÄÏÔʾ´°¿Ú;
 ? ºÍAVPlayerÀàËÆ, ÊÓÆµ²¥·ÅÆ÷ºÍ²¥·ÅviewÊÇ·Ö¿ªµÄ, ÄãÔÚ´´½¨ºÃ´Ë¶ÔÏóºó, ÐèÒªÄõ½¶ÔÏóµÄcompositionSize,È»ºó²¼¾ÖLSODisplayView, ÔÙÉèÖõ½´Ë.
 ? LSODisplayView ¼Ì³Ð×ÔUIView,ÊÇÒ»¸öÏÔʾ¿Ø¼þ,ÏÔʾ´°¿ÚÒ»¶¨ÒªºÍºÏ³É(ÈÝÆ÷)µÄ¿í¸ß³É±ÈÀý, ¿ÉÒÔ²»ÏàµÈ. AG¿­·¢K8¹ú¼ÊÌṩ×î¼òµ¥µÄ¼¯³É·½·¨, ·½±ãÄú²Î¿¼;
 ²ÎÊý£º
 ? view ÏÔʾ´°¿Ú

3. @property(readonly,atomic) CGFloat compDurationS

 ¹¦ÄÜ£º
 ? µ±Ç°²¥·ÅÆ÷µÄ×Üʱ³¤.µ¥Î»Ãë;
 (µ±ÄãÉèÖÃÿ¸öͼ²ãµÄʱ³¤ºó, ´ËÊôÐÔ»á¸Ä±ä. Ö»¶Á, ²»¿ÉдÈë)

4. @property (nonatomic,readonly) CGSize compositionSize

 ¹¦ÄÜ£º
 ? ÄúÔÚinitµÄʱºò, ÉèÖõĺϳɿí¸ß. »òÉèÖõıÈÀý;
 ? µ±ÔÚÔËÐÐÖÐ, µ÷Õû²¥·ÅÆ÷µÄ±ÈÀýºó, ´Ë¿í¸ßÊǵ÷ÕûºóµÄ¿í¸ß

5. @property (nonatomic,assign) CGFloat frameRate

 ¹¦ÄÜ£º
 ? ÉèÖÃÖ¡ÂÊ,
 ? [¿ÉÑ¡],·¶Î§ÊÇ10--60

6. @property (nonatomic,assign) int exportBitRate

 ¹¦ÄÜ£º
 ? ÉèÖÃÂëÂÊ, µ¥Î»×Ö½Ú,
 ? [¿ÉÑ¡],×îµÍÊÇ300*1024

7. @property(nonatomic, readonly) CGFloat currentTimeS

 ¹¦ÄÜ£º
 ? »ñÈ¡,µ±Ç°²¥·ÅµÄʱ¼äµã,µ¥Î»Ãë

8. @property (strong,atomic, readonly) NSMutableArray *overlayLayerArray

 ¹¦ÄÜ£º
 ? µ±Ç°ÄÚ²¿ÓжàÉÙ¸öµþ¼Ó²ã;
 ? Èç¹ûÄã»ñȡʹÓô˱äÁ¿, Ôò»á¿½±´Ò»·ÝеÄNSMutableArray·µ»Ø.
 ? ×¢Òâ: Çë²»ÒªÒ»Ö±¿½±´

9. @property (strong,atomic, readonly) NSMutableArray *concatLayerArray

 ¹¦ÄÜ£º
 µ±Ç°ÄÚ²¿ÓжàÉÙ¸öÆ´½Ó²ã;
  Èç¹ûÄã»ñȡʹÓô˱äÁ¿, Ôò»á¿½±´Ò»·ÝеÄNSMutableArray·µ»Ø.
 ×¢Òâ: Çë²»ÒªÒ»Ö±¿½±´

10. @property (strong,atomic, readonly) NSMutableArray *audioLayerArray

 ¹¦ÄÜ£º
 ? µ±Ç°ÓжàÉÙ¸öÒôƵ²ã;
 ? Èç¹ûÄã»ñȡʹÓô˱äÁ¿, Ôò»á¿½±´Ò»·ÝеÄNSMutableArray
 ? ×¢Òâ: Çë²»ÒªÒ»Ö±¿½±´

11. @property (nonatomic, readwrite) LSOLayer *selectedLayer

 ¹¦ÄÜ£º
 ? ÉèÖÃÒ»¸öͼ²ãΪѡÖÐ״̬;
 ? µ±Óû§Í¨¹ý½çÃæµã»÷±ðµÄͼ²ãʱ,Õâ¸ö״̬»á±»¸Ä±ä;
 ? ¿ÉÒÔÉèÖÃ, Èç¹ûÉèÖò»Ñ¡ÖÐ, ÔòÉèÖÃΪnil

12. - (void)setBackGroundVideoLayerWithURL:(NSURL *)url completedHandler:(void (^)(LSOLayer *videoLayer))handler

 ¹¦ÄÜ£º
 ? ÉèÖÃÒ»¸ö±³¾°ÊÓÆµ,±³¾°ÊÓÆµÄ¬ÈÏÑ­»·;
 ²ÎÊý£º
 ? url ±³¾°ÊÓÆµµÄ·¾¶
 ? handler ±³¾°ÊÓÆµÉèÖÃÍê³ÉʱµÄ»Øµ÷

13. - (LSOLayer *)setBackGroundImageLayerWithImage:(UIImage *)image

 ¹¦ÄÜ£º
 ? ÉèÖÃÒ»¸ö±³¾°Í¼Æ¬

14. - (void)removeBackGroundLayer

 ¹¦ÄÜ£º
 ? ɾ³ý±³¾°Í¼²ã

15. - (LSOLayer *)addVideoLayerWithURL:(NSURL *)url atTime:(CGFloat)startTimeS

 ¹¦ÄÜ£º
 ? Ôö¼ÓÒ»¸öÊÓÆµµþ¼Ó²ã. µþ¼Ó²ãÊÇÔÚÆ´½Ó²ãµÄÉÏÃæ;
 ²ÎÊý£º
 ? url ÊÓÆµµÄUrl·¾¶;
 ? startTimeS  atStartTime ÔںϳɵÄÖ¸¶¨Ê±¼ä¿ªÊ¼Ôö¼Ó

16. - (LSOLayer *)addImageLayerWithImage:(UIImage *)image atTime:(CGFloat)startTimeS

 ¹¦ÄÜ£º
 ? µþ¼ÓÒ»ÕÅͼƬͼ²ã;
 ²ÎÊý£º
 ? image ͼƬ¶ÔÏó
 ? startTimeS ÔÚ²¥·ÅÆ÷ÖеĿªÊ¼µþ¼Óʱ¼ä

17. - (LSOLayer *)addGifLayerWithURL:(NSURL *)url atTime:(CGFloat)startTimeS

 ¹¦ÄÜ£º
 ? µþ¼ÓÒ»¸ögifͼ²ã
 ²ÎÊý£º
 ?  url gifµÄÍêÕûurl·¾¶
 ? startTimeS ÔÚ²¥·ÅÆ÷ÖеĿªÊ¼µþ¼Óʱ¼ä

18. - (LSOLayer *)addMVWithColorURL:(NSURL *)colorUrl maskUrl:(NSURL *) maskUrl atTime:(CGFloat)startTimeS

 ¹¦ÄÜ£º
 ? µþ¼ÓÒ»¸ö͸Ã÷¶¯»­ÊÓÆµ, AG¿­·¢K8¹ú¼ÊµÄ͸Ã÷¶¯»­ÊÇÁ½¸öÊÓÆµºÏ²¢¶ø³ÉµÄ. Ò»¸öÊDzÊÉ«ÊÓÆµ/Ò»¸öÊǺڰ×ÊÓÆµ;
 ²ÎÊý£º
 ? colorUrl ͸Ã÷¶¯»­ÊÓÆµÖеIJÊÉ«ÊÓÆµ
 ? maskUrl ͸Ã÷¶¯»­ÊÓÆµÖеĺڰ×ÊÓÆµ
 ? startTimeS ´Ó²¥·ÅÆ÷ÖеĿªÊ¼µþ¼Óʱ¼ä

19. - (LSOAudioLayer *)addAudioLayerWithURL:(NSURL *)url atTime:(CGFloat)startTimeS

 ¹¦ÄÜ£º
 ? Ôö¼ÓÒ»¸öÉùÒôͼ²ã;
 ²ÎÊý£º
 ? url url·¾¶
 ? startTimeS ¿ªÊ¼Ê±¼ä

20. - (void)removeAudioLayer:(LSOAudioLayer *)audioLayer

 ¹¦ÄÜ£º
 ? ɾ³ýÉùÒôͼ²ã
 ²ÎÊý£º
 ? audioLayer ÉùÒôͼ²ã¶ÔÏó

21. -(BOOL)setOverlayerLayerPosition:(LSOLayer *)layer index:(int)index

 ¹¦ÄÜ£º
 ? ÉèÖõþ¼Ó²ãµÄλÖÃ
 ²ÎÊý£º
 ? layer ͼ²ã¶ÔÏó
 ? index λÖÃ, ×îÀï²ãÊÇ0

22. -(BOOL)setConcatLayerPosition:(LSOLayer *)layer index:(int)index

 ¹¦ÄÜ£º
 ? ÉèÖÃÆ´½Ó²ãµÄλÖÃ.
 ²ÎÊý£º
 ? layer Æ´½ÓµÄͼ²ã
 ? index ͼ²ãµÄindex, ´Óǰµ½ºó, µÚÒ»¸ö²ãÊÇ0; ×îºóÃæµÄÊÇ: _concatLayerArray.count-1;

23. - (CGSize)updateCompositionRatio:(LSOSizeRatio)ratio

 ¹¦ÄÜ£º
 ? ÉèÖúϳɵıÈÀý
 ²ÎÊý£º
 ? ratio ÉèÖõıÈÀý

24. - (void)prepareConcatLayerAsync:(void (^)(NSArray *layerAray))handler

 ¹¦ÄÜ£º
 ? µ÷ÓÃÁ÷³ÌÊÇ, ÔÚinit´´½¨ºÃ´Ë¶ÔÏóºó, ÔÚÐèÒª²¥·Åʱ,µ÷ÓÃprepareÄÚ²¿»á¸ù¾ÝÊäÈëµÄͼƬºÍÊÓÆµÊýÁ¿, ´´½¨ºÃ¶ÔÓ¦µÄͼ²ã¶ÔÏó, ÔÚÕâ¸öhandlerÖзµ»Ø;

25. - (void)insertConcatLayerWithImageArray:(NSArray<UIImage *> *)imageArray completedHandler:(void (^)(NSArray *layerAray))handler

 ¹¦ÄÜ£º
 ? Ôö¼ÓÆ´½ÓͼƬͼ²ã; ¿ÉÒÔÊÇÒ»ÕÅͼƬ, »ò¶àÕÅͼƬ
 ²ÎÊý£º
 ? imageArray <#imageArray description#>
 ? handler ·µ»ØµÄlayerAray :Êǵ±Ç°ÐÂÔö¼ÓµÄͼ²ã¶ÔÏóÊý×é

26. - (void)insertConcatLayerWithArray:(NSArray<NSURL *> *)urlArray atTime:(CGFloat)compTimeS completedHandler:(void (^)(NSArray *layerArray,BOOL insertBefore))handler;

 ¹¦ÄÜ£º
 ? ÔÚÈÝÆ÷µÄÖ¸¶¨Î»ÖÃÔö¼Ó×ÊÔ´
 ? ÔÚÈÝÆ÷µÄÖ¸¶¨Ê±¼äµã²åÈë, ʱ¼äµãÔÚͼ²ãǰ°ë²¿·Ö,²åÈëͼ²ãǰ,·´Ö®²åÈ뵽ͼ²ãºó
 ²ÎÊý£º
 ? urlArray urlÊý×é
 ? compTimeS ÔÚÈÝÆ÷µÄÖ¸¶¨Ê±¼äµã²åÈë,
 ? handle Íê³ÉºóµÄ»Øµ÷,Êǵ±Ç°ÐÂÔö¼ÓµÄͼ²ã¶ÔÏóÊý×é

27. - (void)insertConcatLayerWitImageArray:(NSArray<UIImage *> *)imageArray atTime:(CGFloat)compTimeS completedHandler:(void (^)(NSArray *layerArray,BOOL insertBefore))handler

 ¹¦ÄÜ£º
 ? ÔÚÈÝÆ÷µÄÖ¸¶¨Î»ÖÃÔö¼ÓͼƬÊý×é
 ²ÎÊý£º
 ? imageArray ͼƬÊý×é
 ? compTimeS Ö¸¶¨Ê±¼äµã²åÈë
 ? handler Íê³ÉºóµÄ»Øµ÷,Êǵ±Ç°ÐÂÔö¼ÓµÄͼ²ã¶ÔÏóÊý×é

28. - (void)replaceConcatLayerWithLayer:(LSOLayer *)currentLayer replaceUrl:(NSURL *)url completedHandler:(void (^)(LSOLayer *replacedLayer))handler

 ¹¦ÄÜ£º
 ? Ìæ»»Ò»¸öͼ²ã
 ²ÎÊý£º
 ? currentLayer µ±Ç°ÒªÌæ»»µÄͼ²ã
 ? url ÒªÌæ»»µÄ·¾¶ NSURL ¸ñʽ
 ? handler Ìæ»»Íê³ÉºóµÄ»Øµ÷

29. -(void)splitConcatLayerByTime:(CGFloat)compTimeS layer:(LSOLayer *)layer

 ¹¦ÄÜ£º
 ? ·Ö¸îͼ²ã
 ²ÎÊý£º
 ? compTimeS ´ÓÈÝÆ÷µÄÏà¶Ôʱ¼äµã¿ªÊ¼·Ö¸î
 ? layer Òª·Ö¸îµÄͼ²ã¶ÔÏó, ·Ö¸îºóµÄͼ²ã, »á·Åµ½µ½Æ´½Óͼ²ãÊý×éÖÐ, ·ÖÀëºóÐèÒª¸üÐÂʱ¼äÖá

30. -(void)copyConcatLayerByLayer:(LSOLayer *)layer complete:(void(^)(void))completeBlock

 ¹¦ÄÜ£º
 ? ¸´ÖÆÒ»¸öÆ´½Óͼ²ã
 ²ÎÊý£º
 ? layer Òª¸´ÖƵÄͼ²ã
 ? completeBlock ¸´ÖÆÍê±ÏºóµÄ»Øµ÷; ¸´ÖƺóµÄͼ²ã»á·Åµ½µ½Æ´½Óͼ²ãÊý×éÖÐ, ·ÖÀëºóÐèÒª¸üÐÂʱ¼äÖá

31. -(LSOLayer *)copyVideoLayerByLayer:(LSOLayer *)layer

 ¹¦ÄÜ£º
 ? ¸´ÖÆÒ»¸öͼ²ã
 ²ÎÊý£º
 ? layer ¸´ÖƵÄͼ²ã¶ÔÏó

32. - (BOOL)removeLayer:(nullable LSOLayer *)layer

 ¹¦ÄÜ£º
 ? ɾ³ýÒ»¸öͼ²ã.

33. - (void)removeLayerArray:(nullable NSArray<LSOLayer *> *)layers

 ¹¦ÄÜ£º
 ? ɾ³ýÒ»×éͼ²ã
 ²ÎÊý£º
 ? layers ͼ²ãÊý×é

34. - (BOOL)removeLayerByCompTime:(CGFloat )compTimeS

 ¹¦ÄÜ£º
 ? ¸ù¾ÝºÏ³ÉÖеÄÒ»¸öʱ¼äµã, ɾ³ý¶ÔÓ¦µÄͼ²ã
 ²ÎÊý£º
 ? compTimeS ÔںϳÉÖеÄʱ¼ä,µ¥Î»Ãë

35. -(LSOLayer *)getCurrentConcatLayerByTime:(CGFloat)compTimeS

 ¹¦ÄÜ£º
 ? ¸ù¾Ýµ±Ç°ÔںϳÉÖеÄʱ¼äµã, À´»ñȡһ¸öͼ²ã¶ÔÏó;
 ? µ±Ç°·µ»ØµÄÊÇ LSOLayer¶ÔÏó

36. - (void)applicationDidEnterBackground

 ¹¦ÄÜ£º
 ? APP ½øÈëºǫ́ʱµÄ»Øµ÷;
 ? µ±Óû§´ÓÏÂÏòÉÏ»¬¶¯, ÈÃÕû¸öAPP½øÈëºǫ́µÄʱºò,
 ? Äã¿ÉÒÔµ÷ÓÃÕû¸ö·½·¨, ÈúϳÉÏ߳̽øÈëºǫ́

37. - (void)applicationDidBecomeActive

 ¹¦ÄÜ£º
 ? APP ´Óºǫ́»Ö¸´Ê±µÄ»Øµ÷;
 ? µ±Óû§´Ó ºǫ́µÄ״̬ÏÂ, »Ö¸´µ½µ±Ç°½çÃæ, Ôòµ÷ÓÃÕâ¸öAPP,»Ö¸´ºÏ³ÉµÄÔËÐÐ

38. @property(nullable, nonatomic,copy) UIColor *backgroundColor

 ¹¦ÄÜ£º
 ? ÉèÖúϳÉÈÝÆ÷µÄ±³¾°ÑÕÉ«
 ? µ±Ç°ÔÝʱµ¼³öÎÞÓÃ

39. -(BOOL)startPreview

 ¹¦ÄÜ£º
 ? ²¥·ÅÔ¤ÀÀ

40. -(void)pause

 ¹¦ÄÜ£º
 ? ÔÝÍ£

41. -(void)resume

 ¹¦ÄÜ£º
 ? »Ö¸´²¥·Å

42. - (void)seekToTimeS:(CGFloat)timeS

 ¹¦ÄÜ£º
 ? ¶¨Î»µ½¾ßÌåµÄʱ¼ä´Á;
 ? ÔÚµ÷Óúó, »áÔÝÍ£µ±Ç°½çÃæµÄÖ´ÐÐ;
 ? ÄãÐèÒªÔÚÍê³Éseekºó, µ÷ÓÃresumeÀ´²¥·Å
 ? Ô¤ÀÀÓÐЧ

43. @property (readonly) BOOL isRunning

 ¹¦ÄÜ£º
 ? µ±Ç°ÊÇ·ñÔÚÔËÐÐ

44. @property (readonly) BOOL isPausing

 ¹¦ÄÜ£º
 ? ÊÇ·ñÔÝÍ£

45. -(void)startExportWithRatio:(LSOExportSize)ratioType

 ¹¦ÄÜ£º
 ? ¿ªÊ¼µ¼³ö

46. @property (readonly) BOOL isExporting

 ¹¦ÄÜ£º
 ? µ±Ç°ÊÇ·ñÕýÔÚµ¼³ö

47. -(void)cancel

 ¹¦ÄÜ£º
 ? È¡ÏûÕû¸öºÏ³ÉÏß³Ì
 ? °üÀ¨Ô¤ÀÀºÍµ¼³ö, ¶¼È¡Ïû

48. @property(nonatomic, copy) void(^playProgressBlock)(CGFloat progress,CGFloat percent)

¹¦ÄÜ£º
 ? ½ø¶È»Øµ÷,
 ? µ±ÔÚ±àÂëµÄʱºò, µÈÓÚµ±Ç°ÊÓÆµÍ¼²ãµÄÊÓÆµ²¥·Å½ø¶È ʱ¼äµ¥Î»ÊÇÃë;;
 ? ¹¤×÷ÔÚÆäËûÏß³Ì,
 ? ÈçÒª¹¤×÷ÔÚÖ÷Ïß³Ì,ÇëʹÓÃ:
   progress: µ±Ç°ÕýÔÚ²¥·Å×ܺϳɵÄʱ¼äµã,µ¥Î»Ãë;
   percent: µ±Ç°×ܺϳɵÄʱ¼äµã¶ÔӦת»»ÎªµÄ°Ù·Ö±È; 
 ? ½ø¶ÈÔòÊÇ: progress/_duration;
 dispatch_async(dispatch_get_main_queue(), ^{
 });

49. @property(nonatomic, copy) NSString *_Nullable(^mergeAVBlock)(NSString *video, NSString *audio)

 ¹¦ÄÜ£º
 ? ÊÊÅäios13µÄexportÀàÎÊÌâ

50. @property(nonatomic, copy) void(^playCompletionBlock)(void)

 ¹¦ÄÜ£º
 ? ÔÚÒì²½Ïß³ÌÖ´ÐдËblock; ÇëÓÃһϴúÂëºóµ÷ÓÃ;
 dispatch_async(dispatch_get_main_queue(), ^{
 });

51. @property(nonatomic, copy) void(^exportProgressBlock)(CGFloat progress,CGFloat percent)

 ¹¦ÄÜ£º
 ? µ¼³ö½ø¶È»Øµ÷;
 ? ÔÚÒì²½Ïß³ÌÖ´ÐдËblock; ÇëÓÃһϴúÂëºóµ÷ÓÃ;
 dispatch_async(dispatch_get_main_queue(), ^{
 });

52. @property(nonatomic, copy) void(^exportCompletionBlock)(NSString *_Nullable dstPath)

 ¹¦ÄÜ£º
 ? ±àÂëÍê³É»Øµ÷, Íê³Éºó·µ»ØÉú³ÉµÄÊÓÆµÂ·¾¶;
 ? ×¢Òâ:Éú³ÉµÄdstPathÄ¿±êÎļþ, AG¿­·¢K8¹ú¼Ê²»»áɾ³ý.
 ? ÔÚÒì²½Ïß³ÌÖ´ÐдËblock; ÇëÓÃһϴúÂëºóµ÷ÓÃ;
dispatch_async(dispatch_get_main_queue(), ^{
});

53. @property(nonatomic, copy) void(^userSelectedLayerBlock)(LSOLayer *layer)

 ¹¦ÄÜ£º
 ? µ±Ç°Óû§Ñ¡ÖеÄͼ²ã»Øµ÷;
 ? ÔÚÒì²½Ïß³ÌÖ´ÐдËblock; ÇëÓÃһϴúÂëºóµ÷ÓÃ;
 dispatch_async(dispatch_get_main_queue(), ^{
 });

54. @property(nonatomic, copy) void(^ _Nullable userTouchDownLayerBlock)(LSOLayer * _Nullable layer)

 ¹¦ÄÜ£º
 ? Óû§µã»÷ʼþ,Óû§ÊÖÖ¸°´ÏÂ.
 ? Öм䲻ÐèÒªÔö¼Ó dispatch_async(dispatch_get_main_queue()

55.@property(nonatomic, copy) void(^ _Nullable userTouchMoveLayerBlock)(CGPoint point)

 ¹¦ÄÜ£º
 ? Óû§Òƶ¯Í¼²ã

56. @property(nonatomic, copy) void(^ _Nullable userTouchScaleLayerBlock)(CGSize size)

 ¹¦ÄÜ£º
 ? Óû§Ëõ·Åͼ²ãʼþ

57. @property(nonatomic, copy) void(^ _Nullable userTouchRotationLayerBlock)(CGFloat rotation)

 ¹¦ÄÜ£º
 ? Óû§Ðýתͼ²ã

58. @property(nonatomic, copy) void(^ _Nullable userTouchUpLayerBlock)(void)

 ¹¦ÄÜ£º
 ? Óû§ÊÖָ̧Æð

59. @property(nonatomic, copy) void(^compositionDurationChangedBlock)(CGFloat durationS)

 ¹¦ÄÜ£º
 ? ºÏ³ÉÈÝÆ÷ʱ¼ä¸Ä±ä»Øµ÷;
 ? µ±Õû¸öÈÝÆ÷µÄºÏ³Éʱ¼ä¸Ä±äÁË, Ôò´¥·¢»Øµ÷;
 ? ±ÈÈçÄã¶ÔÊÓÆµ×ö²Ã¼ô,Ôò»á´¥·¢ÕâÀï. 
 ? ÔÚÒì²½Ïß³ÌÖ´ÐдËblock; ÇëÓÃһϴúÂëºóµ÷ÓÃ;
 dispatch_async(dispatch_get_main_queue(), ^{
 });

60. @property (nonatomic, assign) BOOL disableTouchEvent

 ¹¦ÄÜ£º
 ? ½ûֹͼ²ãµÄtouchʼþ

2¡¢IOSÊÓÆµ±à¼­Í¼²ãLSOLayerÀà˵Ã÷

1. @property (readonly,assign)CGFloat originalDurationS

 ¹¦ÄÜ£º
 ? ËØ²ÄµÄԭʼʱ³¤.
 ? ±ÈÈçÊÓÆµ±¾ÉíµÄ³¤¶È, Ö»¶Á.²»»á¸Ä±ä

2. @property (readwrite,assign) CGFloat displayDurationS

 ¹¦ÄÜ£º
 ? µ±Ç°Í¼²ãµÄÏÔʾʱ³¤;
 ? ÔÚûÓвüôʱºó±äËٵȲÙ×÷ʱ, µÈÓÚԭʼʱ³¤

3. @property (nonatomic,readonly) CGSize originalSize

 ¹¦ÄÜ£º
 ? ÊäÈë×ÊÔ´µÄԭʼ´óС

4. @property (nonatomic,readonly) CGSize layerSize

 ¹¦ÄÜ£º
 ? ͼ²ãÔÚÈÝÆ÷ÖеĴóС.
 ? ÊÓÆµ·Åµ½ÈÝÆ÷Öкó, ĬÈÏÊÇ¶ÔÆëµ½±ßÔµµÄ,¹Êͼ²ã´óС»á±ä;
 ? ÊÓÆµÄ¬ÈÏ¶ÔÆëµ½²¥·ÅÆ÷µÄ±ßÔµ. ͼƬ¾ÓÖÐÏÔʾ

5. @property (readwrite,assign) BOOL looping

 ¹¦ÄÜ£º
 ? µþ¼Óͼ²ãÊÇ·ñÑ­»·²¥·Å;
 ? Æ´½Óͼ²ãÉèÖúóÎÞЧ

6. @property(getter=isHidden) BOOL hidden

 ¹¦ÄÜ£º
 ? µ±Ç°Í¼²ãÊÇ·ñÒþ²Ø,
 ? ¿ÉÒÔÓÃÕâ¸öÔÚд´½¨µÄͼ²ã×öÒþ²Ø/ÏÔʾµÄЧ¹û, ÀàËÆÉÁ˸, »ò´´½¨ºÃ,ÔÝʱ²»ÏÔʾµÈЧ¹û

7. @property (readwrite, nonatomic) CGFloat rotateAngle

 ¹¦ÄÜ£º
 ? ½Ç¶ÈÖµ0--360¶È. ĬÈÏΪ0.0
 ? ˳ʱÕëÐýת

8. @property (readwrite, nonatomic) CGPoint centerPoint

 ¹¦ÄÜ£º
 ? ÉèÖûò¶ÁÈ¡  <µ±Ç°Í¼²ãµÄÖÐÐĵã>ÔÚÈÝÆ÷ÖеÄ×ø±ê;
 ? ÈÝÆ÷×ø±êµÄ×óÉϽÇÊÇ×óÉϽÇΪ0,0. ´ÓÉϵ½Ï ÊÇYÖá, ´Ó×óµ½ÓÒÊÇXÖá;
 ? µ±Ò»¸öͼ²ãÔö¼Óµ½ÈÝÆ÷ÖÐ, ÔòĬÈÏÊÇ:
   positionX=drawPadSize.width/2;
   positionY=drawPadSize.height/2;

9. @property (readwrite,nonatomic) LSOPositionType positionType

 ¹¦ÄÜ£º
 ? ÉèÖõ±Ç°Î»ÖÃ,ö¾ÙÀàÐÍ.
 ? AG¿­·¢K8¹ú¼Ê¾ÙÀýÁ˳£¼ûµÄλÖÃö¾ÙÀàÐÍ:
 ? ÉÏÏÂ×óÓÒ/×óÉÏ/×óÏÂ/ÓÒÉÏ/ÓÒÏÂ/¾ÓÖÐ, Èç¹ûÕâЩÀàÐͲ»Âú×ãÄúµÄÐèÇó, ¿ÉÒÔͨ¹ýcenterPointÀ´ÉèÖÃÿ¸öËØ²ÄµÄλÖÃ

10. @property (readwrite,nonatomic) LSOScaleType scaleType

 ¹¦ÄÜ£º
 ? Ëõ·ÅµÄö¾ÙÀàÐÍ;
 ? kLSOScaleNONE: ÎÞËõ·ÅÐÎʽ.ÔòÄÚ²¿»á¸ù¾Ý²»Í¬µÄËØ²Ä,²ÉÓÃĬÈÏÐÎʽ;
 ? kLSOScaleOriginal: ԭʼ´óС Ö±½Ó·ÅÈë, ²»×öÈÎÒâ´¦Àí;
 ? kLSOScaleFillComposition: ºöÂÔ°Ù·Ö±È,°Ñ¿í¶ÈµÈÓÚÈÝÆ÷µÄ¿í¶È, ¸ß¶ÈµÈÓÚÈÝÆ÷µÄ¸ß¶È,ÌîÂúÕû¸öÈÝÆ÷.
 ? kLSOScaleCropFillComposition: Æ¥Åä·ÅÈëµ½ÈÝÆ÷ÖÐ,µÈ±ÈÀýÌîÂúÕû¸öÈÝÆ÷, °Ñ¶àµÄ²¿·ÖÏÔʾµ½ÈÝÆ÷µÄÍâÃæÈ¥;
 ? kLSOScaleVideoScale:ÊÓÆµËõ·Åģʽ,Èç¹ûÊÓÆµ¿í¶È´óÓڸ߶È, Ôò¿í¶ÈºÍÈÝÆ÷¶ÔÆë, È»ºóµÈ±ÈÀýµ÷Õû¸ß¶È,·´Ö®ÒàÈ»
 ? Èç¹ûÒÔÉϲ»Âú×ãÄúµÄÐèÇó, Ôò¿ÉÒÔ scaleSize ÉèÖþßÌåËõ·Åµ½µÄ´óС

11. @property (readwrite, nonatomic) CGSize scaleSize

 ¹¦ÄÜ£º
 ? °Ñͼ²ãËõ·Åµ½Ö¸¶¨µÄ´óС;
 ? ÒÔÏñËØÎªµ¥Î»

12. @property (readwrite, nonatomic) CGSize scaleSizeInView

 ¹¦ÄÜ£º
 ? ÒÔÏÔʾ´°¿ÚΪµ¥Î», Ëõ·Å´óС, ´Ë¿í¸ßÊÇÏà¶ÔÓÚLSODisplayView¶øÑÔ;
 ? Ô¤ÀÀʱÓÐЧ

13. @property (readonly, nonatomic) CGSize layerSizeInView

 ¹¦ÄÜ£º
 ? ÒÔÏÔʾ´°¿ÚΪµ¥Î», »ñȡͼ²ãµÄ¿í¸ß;
 ? Ô¤ÀÀʱÓÐЧ

14. @property (readonly, nonatomic) BOOL isConcatImageLayer

 ¹¦ÄÜ£º
 ? ÊÇ·ñÊÇÆ´½ÓͼƬ²ã

15. @property (readonly, nonatomic) BOOL isConcatVideoLayer

 ¹¦ÄÜ£º
 ? ÊÇ·ñÆ´½ÓÊÓÆµ²ã

16. @property (readonly, nonatomic) BOOL isVideoLayer

 ¹¦ÄÜ£º
 ? ÊÇ·ñÊǵþ¼ÓµÄÊÓÆµ²ã

17. @property (readonly, nonatomic) BOOL isMVLayer

 ¹¦ÄÜ£º
 ? ÊÇ·ñÊǵþ¼ÓµÄmv͸Ã÷¶¯»­²ã

18. @property (readonly, nonatomic) BOOL isImageLayer

 ¹¦ÄÜ£º
 ? ÊÇ·ñÊÇͼƬ²ã

19. @property (readonly, nonatomic) BOOL isGifLayer

 ¹¦ÄÜ£º
 ? ÊÇ·ñÊÇGifͼ²ã

20. @property (readonly, nonatomic) BOOL isImageArrayLayer

 ¹¦ÄÜ£º
 ? ÊÇ·ñÊÇͼƬÊý×éͼ²ã

21. @property(readwrite,assign) CGFloat startTimeOfComp

 ¹¦ÄÜ£º
 ? ÔÚ²¥·ÅÆ÷ÖеĿªÊ¼Ê±¼ä, Ö»¹¤×÷ÔÚµþ¼ÓµÄһЩͼ²ã,±ÈÈçµþ¼ÓµÄͼƬ/ÊÓÆµµÈ

22. @property (readwrite, nonatomic) BOOL isConvertScalePosition

 ¹¦ÄÜ£º
 ? ÊÇ·ñ°ÑËõ·ÅºÍλÖõIJÎÊýת»»;
 ? ĬÈÏÊDz»×ª»»

23. @property (nonatomic,assign)BOOL mirrorDrawX

 ¹¦ÄÜ£º
 ? ÔÚ»æÖƵÄʱºò, ºáÏòͼÏñ¾µÏñ, ×ó±ßµÄÔÚÓÒ±ß, ÓұߵÄÔÚ×ó±ß

24. @property (nonatomic,assign)BOOL mirrorDrawY

 ¹¦ÄÜ£º
 ? ÊúÏòͼÏñ¾µÏñ, ÉÏÃæµÄ·ÅÏÂÃæ, ÏÂÃæµÄ·ÅÉÏÃæ. ĬÈϲ»µ÷Õû

25. @property(readwrite, nonatomic) CGFloat opacityPercent

 ¹¦ÄÜ£º
 ? ²»Í¸Ã÷¶È.
 ? ĬÈÏÊÇ1.0; Íêȫ͸Ã÷ÊÇ0.0

26. @property (readwrite,assign) CGFloat cutStartTimeS

 ¹¦ÄÜ£º
 ? ²Ã¼ôʱ³¤µÄ¿ªÊ¼Ê±¼ä
 ? Ïà¶ÔÓÚÔ­ÊÓÆµµÄʱ¼ä¶øÑÔ;
 ? ½ö¶ÔÊÓÆµÓÐЧ

27. @property (readwrite,assign) CGFloat cutEndTimeS

 ¹¦ÄÜ£º
 ? ²Ã¼ôʱ³¤µÄ½áÊøÊ±¼ä;
 ? ½ö¶ÔÊÓÆµÓÐЧ

28. -(void)addKeyFrameAtCompTime:(CGFloat)compTimeS

 ¹¦ÄÜ£º
 ? Ìí¼Ó¹Ø¼üÖ¡

29. -(void)removeKeyFrameWithCompTime:(CGFloat)compTimeS

 ¹¦ÄÜ£º
 ? ɾ³ý¹Ø¼üÖ¡

30. -(void)removeAllKeyframe

 ¹¦ÄÜ£º
 ? ɾ³ýËùÓйؼüÖ¡

31. @property (readwrite, assign) CGFloat brightnessPercent

 ¹¦ÄÜ£º
 ? µ÷½ÚÁÁ¶ÈµÄ°Ù·Ö±È.
 ? ÕâÀïµÄ°Ù·Ö±ÈÊÇÁ½±¶µÄ¹ØÏµ,·¶Î§ÊÇ 0--2.0; ÆäÖÐ 1.0 ÊÇĬÈÏÖµ,
 ? 0---1.0Êǵ÷С;
 ? 1.0 ÊÇĬÈÏ,
 ? 1.0---2.0 Êǵ÷´ó;
 ? ÈçÒª¹Ø±Õ,Ôòµ÷ÕûΪ 1.0.ĬÈÏÊǹرÕ

32. @property (readwrite, assign) CGFloat contrastFilterPercent

 ¹¦ÄÜ£º
 ? µ÷½Ú¶Ô±È¶ÈµÄ°Ù·Ö±È.
 ? ÕâÀïµÄ°Ù·Ö±ÈÊÇÁ½±¶µÄ¹ØÏµ,·¶Î§ÊÇ 0--2.0; ÆäÖÐ 1.0 ÊÇĬÈÏÖµ,
 ? 0---1.0Êǵ÷С;
 ? 1.0 ÊÇĬÈÏ,
 ? 1.0---2.0 Êǵ÷´ó;
 ? ÈçÒª¹Ø±Õ,Ôòµ÷ÕûΪ 1.0.ĬÈÏÊǹرÕ

33. @property (readwrite, assign) CGFloat saturationFilterPercent

 ¹¦ÄÜ£º
 ? µ÷½Ú±¥ºÍ¶ÈµÄ°Ù·Ö±È.
 ? ÕâÀïµÄ°Ù·Ö±ÈÊÇÁ½±¶µÄ¹ØÏµ,·¶Î§ÊÇ 0--2.0; ÆäÖÐ 1.0 ÊÇĬÈÏÖµ,
 ? 0---1.0Êǵ÷С;
 ? 1.0 ÊÇĬÈÏ
 ? 1.0---2.0 Êǵ÷´ó;
 ? ÈçÒª¹Ø±Õ,Ôòµ÷ÕûΪ 1.0.ĬÈÏÊǹرÕ

34. @property (readwrite, assign) CGFloat sharpFilterPercent

 ¹¦ÄÜ£º
 ? µ÷½ÚÈñ»¯µÄ°Ù·Ö±È.
 ? ÕâÀïµÄ°Ù·Ö±ÈÊÇÁ½±¶µÄ¹ØÏµ,·¶Î§ÊÇ 0--2.0; ÆäÖÐ 1.0 ÊÇĬÈÏÖµ,
 ? 0---1.0Êǵ÷С;
 ? 1.0 ÊÇĬÈÏ,
 ? 1.0---2.0 Êǵ÷´ó;
 ? ÈçÒª¹Ø±Õ,Ôòµ÷ÕûΪ 1.0.ĬÈÏÊǹرÕ;

35. @property (readwrite, assign) CGFloat whiteBalanceFilterPercent

 ¹¦ÄÜ£º
 ? µ÷½ÚɫεİٷֱÈ.
 ? ÕâÀïµÄ°Ù·Ö±ÈÊÇÁ½±¶µÄ¹ØÏµ,·¶Î§ÊÇ 0--2.0; ÆäÖÐ 1.0 ÊÇĬÈÏÖµ,
 ? 0---1.0Êǵ÷С;
 ? 1.0 ÊÇĬÈÏ,
 ? 1.0---2.0 Êǵ÷´ó;
 ? ÈçÒª¹Ø±Õ,Ôòµ÷ÕûΪ 1.0.ĬÈÏÊǹرÕ

36. @property (readwrite, assign) CGFloat hueFilterPercent

 ¹¦ÄÜ£º
 ? µ÷½ÚÉ«µ÷µÄ°Ù·Ö±È.
 ? ÕâÀïµÄ°Ù·Ö±ÈÊÇÁ½±¶µÄ¹ØÏµ,·¶Î§ÊÇ 0--2.0; ÆäÖÐ 1.0 ÊÇĬÈÏÖµ,
 ? 0---1.0Êǵ÷С;
 ? 1.0 ÊÇĬÈÏ,
 ? 1.0---2.0 Êǵ÷´ó;
 ? ÈçÒª¹Ø±Õ,Ôòµ÷ÕûΪ 1.0.ĬÈÏÊǹرÕ

37. @property (readwrite, assign) CGFloat exposurePercent

 ¹¦ÄÜ£º
 ? µ÷½ÚÆØ¹â¶ÈµÄ°Ù·Ö±È.
 ? ÕâÀïµÄ°Ù·Ö±ÈÊÇÁ½±¶µÄ¹ØÏµ,·¶Î§ÊÇ 0--2.0; ÆäÖÐ 1.0 ÊÇĬÈÏÖµ,
 ? 0---1.0Êǵ÷С;
 ? 1.0 ÊÇĬÈÏ,
 ? 1.0---2.0 Êǵ÷´ó;
 ? ÈçÒª¹Ø±Õ,Ôòµ÷ÕûΪ 1.0.ĬÈÏÊǹرÕ

38. @property(readwrite, nonatomic) CGRect mosaicRect1InView

 ¹¦ÄÜ£º
 ? ÂíÈü¿ËÇøÓò:
 ? xyÒÔ×óÉϽǿªÊ¼, ×óÉϽÇÊÇ0.0,0.0;
 ? ¿í¶ÈÊÇÒ»¸ö°Ù·Ö±È, ×î´óÊÇ 1.0;
 ? ¸ß¶ÈÊÇ Ò»¸ö°Ù·Ö±È. ×î´óÊÇ1.0; 
 ? Äãʵʱ´«µÝ¹ýÀ´µÄ¿í¸ßºÍ×ø±ê, ³ýÒÔµ±Ç°Í¼²ãµÄ¿í¸ß,ת»»Îª°Ù·Ö±ÈºóÉèÖùýÀ´, 
 ? ¿í¸ß×ø±ê¿ÉÒÔͨ¹ýgetCurrentRectInView »ñÈ¡µ½µ±Ç°Í¼²ãÔÚcompositionViewÖеÄλÖÃ; 
 ? AG¿­·¢K8¹ú¼Ê¾ÙÀý×î´ó4¸öÂíÈü¿ËÇøÓò;Èç¹ûÄãÐèÒª¸ü¶àµÄÂíÈü¿ËÇøÓò, ÔòÓÃLSOMosaicRectFilterÖ´ÐÐÔö¼Ó;
 ? Ô¤ÀÀʱÓÐЧ

39. @property (readwrite,nonatomic) CGFloat beautyLevel

 ¹¦ÄÜ£º
 ? ÉèÖÃÃÀÑÕ,
 ? ·¶Î§ÊÇ0.0---1.0; 0.0ÊǹرÕÃÀÑÕ; ĬÈÏÊÇ0.0;

40. @property (nonatomic,nullable, copy)LanSongFilter *filter

 ¹¦ÄÜ£º
 ? ÉèÖÃÒ»¸öÂ˾µ, ÉèÖúó, ֮ǰÔö¼ÓµÄÂ˾µ½«È«ÃæÇå¿Õ.
 ? ÀàËÆÂ˾µÒ»¸öÒ»¸öµÄÇл».ÐÂÉèÖÃÒ»¸ö, »á¸²¸ÇÉÏÒ»¸öÂ˾µ.
 ? Èç¹ûÂ˾µÊÇÎÞ, »òÇå³ý֮ǰµÄÂ˾µ, ÕâÀïÌînil;

41. -(void)addFilter:(nullable LanSongFilter *)filter

 ¹¦ÄÜ£º
 ? Ôö¼ÓÒ»¸öÂ˾µ,
 ? Ôö¼Óºó, »áÔÚÉÏÒ»¸öÂ˾µµÄºóÃæÔö¼ÓÒ»¸öеÄÂ˾µ.
 ? ÊǼ¶ÁªµÄЧ¹û 
 ? ԴͼÏñ--->Â˾µ1--->Â˾µ2--->Â˾µ3--->ÒÆ¶¯ÐýתËõ·Å͸Ã÷ÕÚÕÖ´¦Àí--->Óë±ðµÄͼ²ã×ö»ìºÏ;

42. -(void)removeFilter:(nullable LanSongFilter *)filter

 ¹¦ÄÜ£º
 ? ɾ³ýÒ»¸öÂ˾µ

43. -(void)removeAllFilter

 ¹¦ÄÜ£º
 ? ɾ³ýËùÓÐÂ˾µ

44. @property (nonatomic, assign)CGFloat audioVolume

 ¹¦ÄÜ£º
 ? µ÷½ÚËØ²ÄÖеÄÒôƵÒôÁ¿.
 ? Èç¹ûËØ²ÄÓÐÒôÁ¿,ÔòÉèÖÃ, Èç¹ûûÓÐÒôÁ¿,ÔòÎÞЧ;
 ? ·¶Î§ÊÇ0.0---8.0;
 ? 1.0ÊÇԭʼÒôÁ¿; ´óÓÚ1.0,ÊÇ·Å´ó; СÓÚ1.0ÊǼõµÍ, Èç¹û½µµÍ½¨ÒéÊÇ0.1;
 ? Èç¹ûÊÇ0.0ÔòÎÞÉù,

45. @property (readwrite, assign) CGFloat volumeFadeOutDurationS

 ¹¦ÄÜ£º
 ? ÒôÁ¿µ­³öʱ³¤ÉèÖÃ/»ñÈ¡;
 ? ĬÈÏÊÇ0.0,ÎÞµ­³öЧ¹û;
 ? ×î´óΪµ±Ç°ÓÐЧʱ³¤µÄ1/3;

46. @property (readwrite, assign) CGFloat volumeFadeInDurationS

 ¹¦ÄÜ£º
 ? ÒôÁ¿µ­Èëʱ³¤ÉèÖÃ/»ñÈ¡;
 ? ĬÈÏÊÇ0.0,ÎÞµ­ÈëЧ¹û;
 ? ×î´óΪµ±Ç°ÓÐЧʱ³¤µÄ1/3;

47. @property (nonatomic, assign)CGFloat videoSpeed

 ¹¦ÄÜ£º
 ? ÊÓÆµµÄ²¥·ÅËÙ¶È;
 ? ·¶Î§ÊÇ 0.1---10.0
 ? ĬÈÏ1.0; Õý³£²¥·Å;
 ? ½¨ÒéµÄÉèÖòÎÊýÊÇ:
 ? ±äÂý: 0.1, 0.2, 0.4, 0.6,0.8
 ? 񄨍: 2.0, 3.0, 4.0, 6.0,8.0;
 ? µ±Ç°½öÊÇ»­Ãæ±äËÙ, ±äËÙ¹ý³ÌÖÐÔÝʱÎÞÉùÒô;

48. -(void)setVideoReverseAsync:(BOOL)isReverse asyncHandler:(void (^)(CGFloat percent, BOOL finish))handler

 ¹¦ÄÜ£º
 ? ¸øÊÓÆµÍ¼²ãÉèÖõ¹Ðò 
 ? Òì²½ÊÇÒòΪ: ÔÚÊÓÆµµÚÒ»´Îµ¹ÐòµÄʱºò, ÓÐÒ»¸öÒì²½Ô¤´¦ÀíµÄ¹ý³Ì;
 ? percent:Ô¤´¦Àí°Ù·Ö±È: 0---1.0;
 ? µ±Ç°ÔÝʱ²»Ö§³ÖÉùÒôµ¹Ðò. ÔÚµ¹Ðòʱ, ĬÈÏÒôÁ¿Îª0;
 ? µ÷Óô˷½·¨,»áÏÈ´¥·¢ÈÝÆ÷ÔÝÍ£;
 ? ÔÚÒì²½Ïß³ÌÖ´ÐдËblock; ÇëÔÚһϴúÂëÀïµ÷ÓÃ;
 dispatch_async(dispatch_get_main_queue(), ^{
 });

49. - (void)cancelVideoReverse

 ¹¦ÄÜ£º
 ? È¡ÏûÕýÔÚÖ´ÐеÄÊÓÆµµ¹Ðò¹¦ÄÜ

50. @property(nonatomic, readonly)BOOL isReverse

 ¹¦ÄÜ£º
 ? µ±Ç°ÊÇ·ñÔÚµ¹Ðò״̬

51. - (void)getThumbnailAsyncWithHandler:(void (^)(UIImage *image, BOOL finish))handler

 ¹¦ÄÜ£º
 ? Òì²½»ñÈ¡µ±Ç°ËõÂÔͼ;
 ? µ±Ç°ÊÇÿÃëÖÓ»ñȡһ֡;, Ò»Ö¡¿í¸ß×î´óÊÇ100x100;
 ²ÎÊý£º
 ? image ÊÇ»ñÈ¡µ½µÄÿһÕÅËõÂÔͼ;
 ? finishÊÇ ÊÇ·ñ»ñÈ¡Íê±Ï;
 ? »ñÈ¡µÄËõÂÔͼµÄ¸ß¶ÈÊÇ192ÏñËØ,¸ß¶ÈÊÇ192,·µ»ØËùÓÐͼƬµÄ¿í¶È×ܺÍÊÇ µ±Ç°ÒªÏÔʾʱ³¤³ËÒÔ192;
 ? ±ÈÈ統ǰͼ²ãÏÔʾʱ³¤ÊÇ6.2Ãë; Ôò·µ»ØµÄËõÂÔͼÊÇ 6ÕÅ192x192µÄͼƬºÍÒ»ÕÅ 38x192 (38=192*0.2);

52. - (void)getOriginalThumbnailAsyncwithCount:(int)count handler:(void (^)(UIImage *image, BOOL finish))handler

 ¹¦ÄÜ£º
 ? »ñȡԭÊÓÆµµÄËõÂÔͼ;
 ? ´ÓÔ­ÊÓÆµµÄ µÚ0Ãë,µ½×îºó; ·µ»ØµÄËùÓÐͼƬ¶¼ÊÇ192x192ÏñËØ´óС;

 ²ÎÊý£º
 ? count Òª»ñÈ¡µÄÕÅÊý  , Èç¹û²»Çå³þ»ñÈ¡¼¸ÕÅͼƬ, ÔòÓÃ(int)originalDurationS;
 ? handler »ñÈ¡µÄÒì²½»Øµ÷;

53. - (void)getThumbnailAsyncWithDuration:(CGFloat)durationS handler:(void (^)(UIImage *image, BOOL finish))handler

 ¹¦ÄÜ£º
 ? »ñȡָ¶¨Ê±³¤µÄËõÂÔͼ;
 ? ´Óµ±Ç°²Ã¼ôµÄ¿ªÊ¼Ê±¼ä,¼ÆËã, ÿÃëÖÓ·µ»ØÒ»Ö¡, Ò»Ö¡µÄ¿í¸ßÊÇ192
 ²ÎÊý£º
 ? durationS ÒªµÄʱ³¤
 ? handler Òì²½»Øµ÷;

54. @property (readonly,assign) CGFloat thumbnailDisplayTimeS

 ¹¦ÄÜ£º
 ? ËõÂÔͼµÄÏÔʾʱ¼ä

55. @property(nonatomic, readwrite) NSMutableArray<UIImage *> *thumbImageArray

 ¹¦ÄÜ£º
 ? ÔÚÄãµÚÒ»´Îµ÷ÓùýgetThumbnailAsyncWithHandlerºó. ÄÚ²¿»á±£´æµ½Õâ¸öÊôÐÔÖÐ.
 ? ÔÚÏ´λñÈ¡µÄʱºò, Ôò¿ÉÒÔÖ±½Ó¶ÁÈ¡;

56. @property (nonatomic, assign)BOOL touchEnable

 ¹¦ÄÜ£º
 ? µ±Ç°Í¼²ãÊÇ·ñÐèÒªtouchʼþ;
 ? ĬÈÏÊÇÐèÒªµÄ;

57. @property (nonatomic, assign) CGFloat backGroundBlurLevel

 ¹¦ÄÜ£º
 ? ±³¾°Ð黯ֵ.
 ? ÉèÖÃΪ0,È¡Ïû±³¾°;

58. - (void)resetLayerLayout

 ¹¦ÄÜ£º
 ? °Ñͼ²ã»Ö¸´µ½¸ÕÔö¼ÓʱµÄλÖúʹóС

59. -(BOOL)isDisplay

 ¹¦ÄÜ£º
 ? µ±Ç°Í¼²ãÊÇ·ñÔÚÏÔʾ״̬

60. - (LSOAnimation *) addAnimationWithJsonPath:(NSString *)jsonPath atCompS:(CGFloat) atCompS

 ¹¦ÄÜ£º
 ? ÓÃAEµÄjsonÐÎʽÔö¼ÓÒ»¸ö¶¯»­
 ²ÎÊý£º
 ? jsonPath ¶¯»­Îļþ
 ? atCompS ´Ó²¥·ÅÆ÷µÄʲôλÖÃÔö¼Ó

61. - (LSOAnimation *) setAnimationAtLayerHead:(NSString *)jsonPath

 ¹¦ÄÜ£º
 ? ÔÚͼ²ãµÄÍ·²¿Ôö¼ÓÒ»¸ö¶¯»­
 ²ÎÊý£º
 ? jsonPath ¶¯»­Îļþ,json¸ñʽ

62. - (LSOAnimation *) setAnimationAtLayerEnd:(NSString *)jsonPath

 ¹¦ÄÜ£º
 ? ÔÚͼ²ãµÄβ²¿Ôö¼ÓÒ»¸ö¶¯»­
 ²ÎÊý£º
 ? jsonPath ¶¯»­Îļþ, json¸ñʽ

63. - (void)removeAnimation:(LSOAnimation *)animation

 ¹¦ÄÜ£º
 ? ɾ³ýÒ»¸ö¶¯»­
 ²ÎÊý£º
 ? animation ¶¯»­¶ÔÏó,ÔÚaddAnimationµÄʱºòÔö¼ÓµÄ

64. - (void)removeAllAnimationArray

 ¹¦ÄÜ£º
 ? ɾ³ýËùÓж¯»­

65. - (NSMutableArray *)getAllAnimationArray

 ¹¦ÄÜ£º
 ? »ñÈ¡ËùÓе͝»­¶ÔÏóÊý×é

66. -(BOOL) playAnimation:(LSOAnimation *)animation

 ¹¦ÄÜ£º
 ? Ô¤ÀÀÒ»¸ö¶¯»­
 ²ÎÊý£º
 ? animation Ô¤ÀÀ»á´Ó¶¯»­µÄ¿ªÊ¼Ê±¼äµã,²¥·Åµ½½áÊøÊ±¼äµã

67. - (LSOEffect *) addEffectWithJsonPath:(NSString *)jsonPath atCompS:(CGFloat) atCompS

 ¹¦ÄÜ£º
 ? ÓÃAEµÄjsonÎļþÐÎʽÔÚÖ¸¶¨Ê±¼äµãÔö¼ÓÒ»¸öÌØÐ§
 ²ÎÊý£º
 ? jsonPath ÌØÐ§µÄjson
 ? atCompS ´ÓÈÝÆ÷µÄÖ¸¶¨Ê±¼äµã

68. - (LSOEffect *) addEffectWithJsonAtLayerHead:(NSString *)jsonPath

 ¹¦ÄÜ£º
 ? ÔÚͼ²ãµÄÍ·²¿Ôö¼ÓÒ»¸öÌØÐ§
 ²ÎÊý£º
 ? jsonPath ÌØÐ§µÄjsonÎļþ

69. - (LSOEffect *) addEffectWithJsonAtLayerEnd:(NSString *)jsonPath

 ¹¦ÄÜ£º
 ? ÔÚͼ²ãµÄβ²¿Ôö¼ÓÒ»¸öÌØÐ§
 ²ÎÊý£º
 ? jsonPath ÌØÐ§µÄjsonÎļþ

70. - (void)removeEffect:(LSOEffect *)effec

 ¹¦ÄÜ£º
 ? ɾ³ýÒ»¸öÌØÐ§,
 ²ÎÊý£º
 ? effect ÌØÐ§¶ÔÏó,´ÓaddEffectXXXµÃµ½µÄÌØÐ§¶ÔÏó

71. - (void)removeAllEffectArray

 ¹¦ÄÜ£º
 ? ɾ³ýËùÓеÄÌØÐ§

72. -(BOOL) playEffect:(LSOEffect *)effect

 ¹¦ÄÜ£º
 ? Ô¤ÀÀÒ»¸öÌØÐ§
 ²ÎÊý£º
 ? effect Ô¤ÀÀ»á´ÓÌØÐ§µÄ¿ªÊ¼Ê±¼äµã,²¥·Åµ½½áÊøÊ±¼äµã

73. - (NSMutableArray *)getAllEffectArray

 ¹¦ÄÜ£º
 ? »ñÈ¡ËùÓеÄÌØÐ§¶ÔÏóÊý×é

74. @property(readwrite, assign)NSURL *transitionJsonUrl

 ¹¦ÄÜ£º
 ? ÉèÖÃת³¡µÄ¶¯»­Â·¾¶, json¸ñʽ;
 ? ¿Éͨ¹ýÕâ¸ö»ñÈ¡ÊÇ·ñÉèÖÃÁËת³¡; Èç¹ûҪȡÏûת³¡;ÔòÕâÀïµÈÓÚnil;
 ? ÉèÖúó, ĬÈÏת³¡Ê±¼äΪ1Ãë;

75. - (void)setMGTransitionWithColorUrl:(NSURL *)colorUrl maskUrl:(NSURL *)maskUrl

 ¹¦ÄÜ£º
 ? Ôö¼Ómgת³¡¶¯»­

76. @property(readwrite, assign)CGFloat transitionDurationS

 ¹¦ÄÜ£º
 ? ÉèÖûò»ñȡת³¡Ê±¼ä
 ? ÔÚÉèÖÃת³¡ºóÓÐЧ;
 ? ʱ¼ä·¶Î§ÊÇ0---5.0Ãë;
 ? Èçת³¡Ê±¼ä ´óÓÚͼ²ãʱ¼ä, ÔòµÈÓÚͼ²ãʱ¼ä;
 ? ¿ÉÒÔͨ¹ýת³¡Ê±¼ä,Åжϵ±Ç°Í¼²ãÊÇ·ñÓÐת³¡¹¦ÄÜ;

77. @property(readonly, nonatomic)CGFloat transitionMaxDurationS

 ¹¦ÄÜ£º
 ? ת³¡¿ÉÉèÖõÄ×î´óÖµ;
 ? Ö»ÄÜ»ñÈ¡;
 ? ×î´óÖµµÈÓÚ, µ±Ç°Í¼²ãµÄ1/3 ºÍÏÂÒ»¸öͼ²ãʱ³¤µÄ1/3 ºÍ3Ãë µÄ×îСֵ;

78. @property(readonly, nonatomic)BOOL isAddTransition

 ¹¦ÄÜ£º
 ? ÊÇ·ñÔö¼ÓÁËת³¡

79. - (BOOL)playTransition

 ¹¦ÄÜ£º
 ? Ô¤ÀÀת³¡;
 ? ÄãÐèÒªÔÚÉèÖÃת³¡ºóµ÷ÓòÅÓÐЧ;

80. - (void)cancelTransition

 ¹¦ÄÜ£º
 ? È¡Ïûת³¡

81. @property (nonatomic, readonly) CGFloat transitionStartTimeOfCompS

 ¹¦ÄÜ£º
 ? ת³¡Ïà¶ÔÓÚ²¥·ÅÆ÷µÄ¿ªÊ¼Ê±¼ä

82. @property (readwrite,nonatomic)NSURL *videoURL

 ¹¦ÄÜ£º
 ? Èç¹ûÊÇÆ´½ÓµÄÊÇÊÓÆµ, »òµþ¼ÓµÄÊÇÊÓÆµ, Ôò¿ÉÒÔ»ñÈ¡µ½videoURL·¾¶

83. @property (readwrite,nonatomic)UIImage *uiImage

 ¹¦ÄÜ£º
 ? Æ´½Ó»òµþ¼ÓÒ»ÕÅͼƬʱ, Ôö¼ÓµÄͼƬ¶ÔÏó

84. @property (readonly, nonatomic, nullable) NSURL *reverseVideoUrl

 ¹¦ÄÜ£º
 ? »ñÈ¡µ¹ÐòµÄÊÓÆµÂ·¾¶;
 ? ÔÚÉèÖõ¹Ðò,²¢µ¹ÐòÍê³Éºó»ñÈ¡;
 ? ÔÚÈÝÆ÷ÊÍ·Å»ò ͼ²ãÊͷźó, ÄÚ²¿»áɾ³ý;

ËÄ¡¢AEÄ£°æSDK

4.1¡¢Ä£°åËØ²ÄÀà:LSOAexAeModule ºÍLSOAexImage

LSOAexModuleÀàÊÇÓÃÀ´ÉèÖÃÒ»¸öÄ£°åµÄ¸÷ÖÖËØ²Ä£¬±ÈÈçÒ»¸öÄ£°åÔÚµ¼³öʱ»áµ¼³ö±³¾°ÊÓÆµÎļþ£¬Í¸Ã÷mvÊÓÆµ, ÉùÒôµÈÆäËûËØ²Ä£¬¼ÓÔØºóÄã»áµÃµ½Õâ¸öÄ£°åµÄ¿í¶È£¬¸ß¶È£¬ ¿ÉÌæ»»Í¼Æ¬ÊýÁ¿£¬ÒÔ¼°Ã¿ÕÅͼƬµÄ¿ªÊ¼Ê±¼äºÍ ͼƬÏÔʾʱ³¤¡£ lsoaeximage¾ÍÊÇͼƬÀ࣬AG¿­·¢K8¹ú¼ÊÒѾ­ÔÚ½âÎöʱ£¬¶ÔÿÕÅͼƬ°´ÕÕʱ¼ä³öÏÖµÄÏȺó˳Ðò×öÁËÅÅÐò£¬Äã»ñÈ¡µÄµÚ1¸öË÷Òý£¬¾ÍÊÇ×îÏÈÏÔʾµÄͼƬ£¬ÄãÒªÌæ»»ÊÓÆµÍ¼Æ¬ÎªÊÓÆµ»òͼƬÔòµ÷ÓÃupdapath£¬Äã¿ÉÒÔÔÚ¿ªÊ¼Ê±¼äµ÷Óã¬Ò²¿ÉÒÔÔÚÄ£°å¼ÓÈëµ½Ô¤ÀÀ²¥·ÅÆ÷Öе÷Óã» Ìæ»»Ê±ÓÐÒ»¸öoptionÑ¡Ïµ±Ç°Ö§³ÖÉèÖÃËõ·ÅÐÎʽºÍ¿ªÊ¼Ê±¼ä£¬optionµÄö¾ÙËõ·Å£¬Ö§³Ö²Ã¼ôµ½È«ÆÁ¡¢ÍêÕûËõ·Å£¬ ÊÓÆµÀàÐÍËõ·Å£»updatePathÌæ»»·µ»Ø²¼¶ûÀàÐÍ£¬±íÊ¾Ìæ»»³É¹¦»òʧ°Ü¡£ ¿É¶à´Îµ÷ÓᣠÈç¹ûÊÇÊÓÆµÔò¿ÉÒÔͨ¹ýgetThumbnailAsyncÒì²½»ñÈ¡ÐèÒªµÄËõÂÔͼ¡£

4.2¡¢AE²¥·ÅÀà:LSOAexplayerView

ÓÃÀ´²¥·ÅÒ»¸öAEÄ£°å£¨LSOAexModule£©£¬ Ö§³Ö²¥·Å½ø¶È»Øµ÷¡¢²¥·ÅÍê³É»Øµ÷£¬µ¼³ö½ø¶È»Øµ÷£¬µ¼³öÍê±Ï»Øµ÷¡¢¶¨Î»µ½Ê±¼ä£¬¶¨Î»µ½AexImage£¬ ÔÝÍ£pause¡¢»Ö¸´resume£¬¿ªÊ¼²¥·Å£¬¿ªÊ¼µ¼³ö£¬ ÓÐÖ´ÐдíÎ󻨵÷£¬ ²¥·ÅµÄAexImage¸Ä±ä»Øµ÷£¬²¢Ö§³ÖÊÖÊÆ£¬µ±µã»÷²¥·Å»­ÃæÊ±£¬»á·µ»ØÓû§µ±Ç°µã»÷ÁËÄĸöLSOAexImage¡£µ±Óû§ÔÚ²¥·Å¹ý³ÌÖÐÒªÌæ»»ËزÄʱ£¬ ¿Éͨ¹ýAexImageµÄupdatePath·½·¨Ìæ»»£¬ iOSÐèÒªÔÚµ÷ÓÃupdateWithUrlºóÁíÍâÔÙÖ´ÐÐaexCompositionµÄupdateAexImage£»AG¿­·¢K8¹ú¼ÊÄÚ²¿¼ì²éµ½ÄãÌæ»»ºó£¬»áÏÔÊ¾Ìæ»»ºóµÄ»­Ã棬²¢äÖȾµ½µ±Ç°moduleÖС£ iOS°æ±¾µÄAPI ÊÇ£ºLSOAexCompositionºÍLSOAexDisplayViewÁ½¸öÀà×é³É£¬ Ò»¸öÊǺϳÉ£¬Ò»¸öÊDz¥·Å´°¿Ú¡£

4.3¡¢ÊÖÊÆËµÃ÷£º

ÔÚ²¥·ÅÖУ¬µ±Óû§ÊÖÖ¸µã»÷»­ÃæÊ±£¬²¥·ÅÆ÷»áÔÝÍ££¬²¢·µ»Ø¸øÄãÓû§Ñ¡ÖеÄAexImage¶ÔÏ󣬿ÉÖ±½Ó¸ü¸ÄAexImageÖеÄÊÓÆµ»òͼƬ£¬¸ü¸Äºó£¬²¥·ÅÆ÷»áÏàÓ¦µÄ²¥·ÅÌæ»»ºóµÄÊÓÆµ»òͼƬ¡£ µ±Óû§Í¼Æ¬»òÊÓÆµ¿í¸ß²»µÈÓÚAEÄ£°åÖеÄͼƬ¿í¸ßʱ£¬ ÔÚÌæ»»Ê±£¬Ä¬ÈÏ»á¸ù¾ÝoptionµÄËõ·ÅÀàÐÍ×öËõ·Å£¬²¢´Ó»­ÃæÖÐÐÄÏÔʾ£» ÔÚÓû§µã»÷²¥·Å»­ÃæÊ±£¬ ¿Éµ¥Ö¸Òƶ¯µ÷ÕûÒªÏÔʾ»­ÃæµÄÄIJ¿·Ö£¬Ò²¿ÉÒÔ˫ָËõ·ÅºÍÐýתÀ´µ÷ÕûÏÔʾµÄ»­Ã棬 µ÷ÕûºóµÄ»­Ãæ¾ÍÊÇ×îÖÕÒªÉú³ÉµÄ»­Ãæ¡£Èç¹ûÄãÁ½¸öͼƬÔÚAEÖÆ×÷ʱÊÇÖØµþµÄ, ÓпÉÄܵã»÷ͼƬµÄʱºò, »áÑ¡ÖÐÁíÒ»ÕÅͼƬ,¶ø·ÇÄãÒªµÄͼƬ,½¨ÒéÔÚÖÆ×÷ʱ²»ÒªÖصþ£¨ÏÂÒ»¸ö°æ±¾»á×ö½øÒ»²½µÄÓÅ»¯£©¡£

4.4¡¢AexImageµÄ¸Ä±ä»Øµ÷·½·¨ËµÃ÷:

AG¿­·¢K8¹ú¼ÊÄÚ²¿ÊDzéÕÒÄĸöaexImageµÄ¿ªÊ¼Ê±¼äµã ºÍµ±Ç°Ê±¼äµÄ²îÖµ×îС, ¶ø·µ»ØÄĸöaexImage, Èç¹ûÄã¶à¸öͼƬÔÚʱ¼äµãÉÏÊÇÖØµþµÄ, ÓпÉÄÜ·µ»ØµÄaexImage²»ÊÇÄãÒªµÄ½á¹û£¬ÕâÊÇÕý³£Çé¿ö£¬¿ÉºÍAEÉè¼ÆÊ¦ÉÌÁ¿ÈçºÎ±ÜÃâ


Îå¡¢ÈËÏñ·Ö¸îSDK

5.1¡¢IOSµÄÈËÏñ·Ö¸îÓõ½µÄ¿â

¿â£º

Ä£ÐÍ£º

ÐèÒªÒÀÀµÏµÍ³µÄ¿â£º

µ÷ÓÃ

ΨһÀà:TLAPISegment
/// ³õʼ»¯Ä£ÐÍ
/// @param modelPath modelµÄ·¾¶
/// @param protoPath ЭÒéµÄ·¾¶
- (instancetype)initWithModelPath:(NSString *)modelPath protoPath:(NSString *)protoPath;


/// ·Ö¸îÒ»Ö¡»­Ãæ
/// @param image_buffer ԭʼµÄÊý¾Ý,
/// @param callback ·Ö¸îÍê±ÏºóµÄ»Øµ÷, »Øµ÷¹¤×÷ÔÚUIÏß³Ì;
- (void)segmentPixelBuffer:(CVPixelBufferRef)image_buffer callback:(segmentCallback2)callback;


/// ÊÍ·ÅÄ£ÐÍ
- (void)relaseLSO;

5.2¡¢²»ÓÃÈËÏñ·Ö¸î£¬¿Éɾ³ýµÄÎļþ

Android£º

  1. assets쵀tenlinev2.model
  2. jniLibs/arm64-v8a쵀libTenLineJni.so
  3. jniLibs/armeabi-v7a쵀libTenLineJni.so

IOS£º

  1. tnn.framework
  2. TenLineSegmnetFramework.framework
  3. tnn.metallib
  4. TEN_LINE_IOS.MODEL
  5. TEN_LINE_IOS.MODEOPROTO
  6. TenLineFast_ios.MODEL
  7. TenLineFast_ios.MODELPROTO

Áù¡¢Android¶Ë´íÎó´úÂë

6.1¡¢´íÎóÂë:1200

 ±àÂëÅäÖôíÎó.
 Ò»°ãÊǵ±Ç°É豸²»Ö§³Ö±àÂë·Ö±æÂÊ,»ò±àÂëÂëÂʵ¼ÖÂ.
 SDKÄÚ²¿ÓõÄÊÇMediaCodec±àÂë,
 Èç¹û·Ö±æÂÊÉèÖó¬¹ýÁËMediaCodecµÄ·¶Î§, ÔòÅ׳ö´Ë´íÎóÐÅÏ¢.

6.2¡¢´íÎóÂë:1201

±àÂëÅäÖôíÎó.
Ò»°ãÊǵ±Ç°É豸²»Ö§³Ö±àÂë·Ö±æÂÊ,»ò±àÂëÂëÂʵ¼ÖÂ. SDKÄÚ²¿ÓõÄÊÇMediaCodec±àÂë, Èç¹û·Ö±æÂÊÉèÖó¬¹ýÁËMediaCodecµÄ·¶Î§,ÔòÅ׳ö´Ë´íÎóÐÅÏ¢.

6.3¡¢´íÎóÂë:1202

 GPUÖ´ÐдíÎó.

6.4¡¢´íÎóÂë:1203

±àÂëÆ÷ÔÚ±àÂëÒ»Ö¡Íê³ÉºóµÄ, Òý³öÊý¾Ýʱ·¢Éú´íÎó.

6.5¡¢´íÎóÂë:1204

SDKµÄÊÚȨÎļþ´íÎó.
¿ÉÄÜÊÇSDK¹ýÆÚ, »òapplicationID ºÍÊÚȨÎļþÖеIJ»Ò»ÖÂ, »ò³¬³öÁËʹÓÃʱ¼ä.

6.6¡¢´íÎóÂë:1205

äÖȾµÄsurface´íÎó.
³£¼ûΪ:ûÓÐÉèÖÃsurface»òsurfaceÒѾ­±»ÊÍ·Å

6.7¡¢´íÎóÂë:1206

ÈÝÆ÷¿í¸ßÉèÖùýµÍµÄ´íÎó.
·Ö±æÂÊÉèÖÃСÓÚ320x320,Ôò»áÅ׳ö´Ë´íÎóÐÅÏ¢

6.8¡¢´íÎóÂë:1207

µ±Ç°Í¼²ã´íÎó.
½¨ÒéÄõ½´íÎóÐÅÏ¢ÈÕÖ¾ºó,·ÖÎöÊÇÄÄÀïµÄÎÊÌâ.

AG¿­·¢K8¹ú¼Ê

sitemap¡¢ÍøÕ¾µØÍ¼