我在iPhone应用程序中成功使用zbarsdk。唯一的问题是:有时扫描仪无法读取条形码。我找不到如何设置超时(如果无法读取代码栏5秒钟,请流产扫描)。
有隐藏的选项吗?或技巧?
事先感谢您的帮助。
@le_jax zbarsdk被配置为特定符号,如下所述
" zbar是一个开源软件套件,用于从各种来源(例如视频流,图像文件和原始强度传感器)读取条形码。它支持许多流行的符号(类型)(包括ean-13/ean-13/UPC-A,UPC-E,EAN-8,代码128,代码39,交错2和QR代码。" "
您可以使用这样的Web资源来测试应用程序的功能。
您在这里查询的要点截至您尚未设置所需的符号
[scanner setSymbology: ZBAR_I25 config: ZBAR_CFG_ENABLE to: 0];
或与配置设置有关的东西。您可以从zbar.h(Zbar SDK的一部分)中检查完整的支持符号。
typedef enum zbar_symbol_type_e {
ZBAR_NONE = 0, /**< no symbol decoded */
ZBAR_PARTIAL = 1, /**< intermediate status */
ZBAR_EAN2 = 2, /**< GS1 2-digit add-on */
ZBAR_EAN5 = 5, /**< GS1 5-digit add-on */
ZBAR_EAN8 = 8, /**< EAN-8 */
ZBAR_UPCE = 9, /**< UPC-E */
ZBAR_ISBN10 = 10, /**< ISBN-10 (from EAN-13). @since 0.4 */
ZBAR_UPCA = 12, /**< UPC-A */
ZBAR_EAN13 = 13, /**< EAN-13 */
ZBAR_ISBN13 = 14, /**< ISBN-13 (from EAN-13). @since 0.4 */
ZBAR_COMPOSITE = 15, /**< EAN/UPC composite */
ZBAR_I25 = 25, /**< Interleaved 2 of 5. @since 0.4 */
ZBAR_DATABAR = 34, /**< GS1 DataBar (RSS). @since 0.11 */
ZBAR_DATABAR_EXP = 35, /**< GS1 DataBar Expanded. @since 0.11 */
ZBAR_CODE39 = 39, /**< Code 39. @since 0.4 */
ZBAR_PDF417 = 57, /**< PDF417. @since 0.6 */
ZBAR_QRCODE = 64, /**< QR Code. @since 0.10 */
ZBAR_CODE93 = 93, /**< Code 93. @since 0.11 */
ZBAR_CODE128 = 128, /**< Code 128 */
/** mask for base symbol type.
* @deprecated in 0.11, remove this from existing code
*/
ZBAR_SYMBOL = 0x00ff,
/** 2-digit add-on flag.
* @deprecated in 0.11, a ::ZBAR_EAN2 component is used for
* 2-digit GS1 add-ons
*/
ZBAR_ADDON2 = 0x0200,
/** 5-digit add-on flag.
* @deprecated in 0.11, a ::ZBAR_EAN5 component is used for
* 5-digit GS1 add-ons
*/
ZBAR_ADDON5 = 0x0500,
/** add-on flag mask.
* @deprecated in 0.11, GS1 add-ons are represented using composite
* symbols of type ::ZBAR_COMPOSITE; add-on components use ::ZBAR_EAN2
* or ::ZBAR_EAN5
*/
ZBAR_ADDON = 0x0700,
} zbar_symbol_type_t;
我不太确定是否有任何类似时间的时间来检查ZBAR是否无法将符号进行编码,但是可以肯定的是,您有使用
的委托方法- (void) readerView: (ZBarReaderView*) readerView didReadSymbols: (ZBarSymbolSet*) symbols
fromImage: (UIImage*) image;
我能提出的建议(我之前遇到的问题无法扫描我第二次进入扫描仪屏幕上的代码)是您可以按照SDK中提供的示例重新配置SDK,或者您可以确认支持的符号(如果您正在尝试解码一些不支持的格式)。
如果您遇到任何标准方法来设置超时期限,请分享So。
欢呼!