iOS 为条码扫描器添加哔哔声

Posted

技术标签:

【中文标题】iOS 为条码扫描器添加哔哔声【英文标题】:iOS add beep to barcode scanner 【发布时间】:2014-12-11 21:36:41 【问题描述】:

我一直在使用来自 infragistics 的 ios 7 (Objective-C) 扫描条码,它运行良好。我正在尝试在成功完成扫描时添加哔声,但不断收到错误消息。我敢肯定,对于比我了解更多的人来说,这很容易解决。

-(void)loadBeepSound
    // Get the path to the beep.mp3 file and convert it to a NSURL object.
    NSString *beepFilePath = [NSString stringWithFormat:@"%@/beep.mp3", [[NSBundle mainBundle] resourcePath]];
    NSURL *beepURL = [NSURL URLWithString:beepFilePath];

    NSError *error;

    // Initialize the audio player object using the NSURL object previously set.
    _audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:beepURL error:&error];
    if (error) 
        // If the audio player cannot be initialized then log a message.
        NSLog(@"Could not play beep file.");
        NSLog(@"%@", [error localizedDescription]);
        NSLog(@"beepFilePath %@", beepFilePath);
    
    else
        // If the audio player was successfully initialized then load it in memory.
        [_audioPlayer prepareToPlay];
    

错误记录为 -

- 无法播放哔声文件。 - 操作无法完成。 (OSStatus 错误 -10875。) -beepFilePath /private/var/mobile/Containers/Bundle/Application/22BB6164-82F8-46E5-B4B6- 4C91BCA2B7E9/ReThink Edu App.app/beep.mp3

因此加载哔声似乎是一个问题,但它位于主捆绑包中,并且目标成员资格框已打勾。也许我只是想以错误的方式解决这个问题!

【问题讨论】:

您能否退出带有错误的 beepFilePath 并更新问题,谢谢。 我想我不知道你在问什么 我想看看它正在取回一个有效的文件路径,这将是最明显的失败点。 代替这个: NSURL *beepURL = [NSURL URLWithString:beepFilePath];试试这个: NSURL *beepURL = [NSURL fileURLWithPath:beepFilePath]; 解决了,迈克!我怎样才能给你信用? 【参考方案1】:

而不是这个:

    NSURL *beepURL = [NSURL URLWithString:beepFilePath]; 

试试这个:

    NSURL *beepURL = [NSURL fileURLWithPath:beepFilePath];

【讨论】:

更简单的方法是将所有路径/URL 代码替换为:NSURL *beepURL = [[NSBundle mainBundle] URLForResource:@"beep" withExtension:@"mp3"]; 是的,这样更好。【参考方案2】:

当您使用[NSURL URLWithString:beepFilePath]; 时,它只会获取文件夹路径的字符串,例如Users/***/folder/etc

所以使用[NSURL fileURLWithPath:beepFilePath];这个代码将完整路径像file:///Users/***/folder/etc

工作代码:

NSURL *beepURL = [NSURL fileURLWithPath:beepFilePath];

可选方法:

NSURL *beepURL = [NSURL URLWithString:[NSString stringWithFormat:@"file:///%@", beepFilePath]];

【讨论】:

以上是关于iOS 为条码扫描器添加哔哔声的主要内容,如果未能解决你的问题,请参考以下文章

Phonegap 条码扫描仪无法识别 windows phone 上的任何条码

在 iOS 8 中扫描条码并显示条码

如何在 ios 中实现条码扫描器功能?

iOS 条码扫描器

在 iPhone 上使用 Phonegap 条码扫描器

条码Code39扫描可靠吗?