【问题标题】:xcode 7.3.1 app on iPhone6+ won't play MP3 file anymoreiPhone6+ 上的 xcode 7.3.1 应用程序将不再播放 MP3 文件
【发布时间】:2016-09-19 15:58:09
【问题描述】:

Xcode 应用无法在 iphone6+ 或模拟器上播放 MP3 音乐文件。
只是尝试在应用启动时播放一个简单的 MP3 文件。
正在工作。试过以前的工作版本,它不会播放。
MP3 文件名为 d.mp3
如果我在 Xcode 项目中双击它就会播放它。

Xcode 顶级项目组: 粒子SDK ...

我的应用 d.mp3 我所有的 .h 和 .c

豆荚

我选择了:TARGETS > myApp 构建阶段 > 将二进制文件与库链接: AV基金会 核心图形 UIKit 基金会

        // .h:.............................

        #import <UIKit/UIKit.h>
        @interface SparkViewController : UIViewController

        @end


        // .m:........................................

        #import "SparkViewController.h"
        #import "Spark-SDK.h"
        #import <UIKit/UIKit.h>
        #import "AVFoundation/AVAudioPlayer.h"

        @interface SparkViewController () <AVAudioPlayerDelegate>
        {
             AVAudioPlayer *AV_audio_player;   // strong reference
        }
        @property (weak, nonatomic) IBOutlet UILabel *loggedInLabel;
        @property (nonatomic, strong) id eventListenerID_A;
        @property (nonatomic, strong) id eventListenerID_B;

        @end

        @implementation SparkViewController

        - (void)viewDidLoad
        {
            [super viewDidLoad];
 //////////////////////////   P L A Y   M P 3   F I L E    ///////////////////////////

                          NSURL *url = [[NSBundle mainBundle] URLForResource:@"d" withExtension:@"mp3"];
        printf("\n url = 0x%x \n", (int)url );
        NSError*  the_error;
                      AV_audio_player = [[AVAudioPlayer alloc] initWithContentsOfURL:url error: &the_error];
                      NSLog(@" Error is: %@", the_error );
                          AV_audio_player.delegate = self;
                          [AV_audio_player play];
                          printf( "\n %s    AV_audio_player playing.", __FUNCTION__ );
    printf("\n AV_audio_player = 0x%x", (int)AV_audio_player );

        }

输出日志.......................
-[SparkViewController viewDidLoad] ************* v 2016-09-19 X1 ************
网址 = 0x34e5db80
2016-09-19 12:18:41.805 AudMan1 x1[385:60539] 错误是:(null)

-[SparkViewController viewDidLoad] AV_audio_player 播放。 AV_audio_player = 0x34e51790

【问题讨论】:

  • 您正在丢弃error 信息。也许你应该检查一下,看看是否有错误? — 还请显示您的 NSLog 调用的结果。
  • 另外请注意,并非所有在您计算机上播放的 MP3 都可以在 iOS 中播放。
  • 谢谢,马特。如何获取错误信息?并且重新“不是每个 MP3 都播放”...这个文件上周播放过。这只是我用 MacBook 的 GarageBand 制作的简单小曲。我将添加错误和日志输出。

标签: ios objective-c iphone xcode avaudioplayer


【解决方案1】:

您问题中给出的所有证据似乎都是音频播放器正在播放,或者至少是开始播放。也许一些 other 代码随后会出现并阻止它,或者设置 AV_audio_player 从而杀死当前的音频播放器 - 但那将是 other 您没有显示的代码,所以我们不可能知道它。只有你能找到它。这样做,问题就迎刃而解了。

(当然,您可能还打开了 iPhone 上的静音开关,或者将音量一直调低。因此,还要寻找可能听不到声音的硬件原因。)

【讨论】:

  • 这没有直接关系,但我强烈建议您将AV_audio_player 设为@property 并通过属性访问它。直接使用 ivars 而不使用访问器是一个非常糟糕的主意。
  • 另外我只想指出,既然你说“这个文件上周曾经播放过”,那么使用你的 git 存储库来查看导致代码停止按预期行事。
猜你喜欢
  • 1970-01-01
  • 2013-04-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多