【问题标题】:Volume of a sound in iosios中声音的音量
【发布时间】:2014-03-18 10:17:55
【问题描述】:

在我的应用程序中我会播放声音,所以我在网上查找了如何执行此操作,我发现我应该执行以下操作:

#import <AudioToolbox/AudioToolbox.h>

@property(nonatomic,strong)AVAudioPlayer *player;

NSURL *musicFile = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"sms_alert_circles" ofType:@"mp3"]];
    player = [[AVAudioPlayer alloc] initWithContentsOfURL:musicFile error:nil];

[player setVolume:1.0];

[player prepareToPlay];
[player play];

它可以工作,但设备会再现我弄湿的声音,但音量非常低,所以我将这一行:[player setVolume:1.0]; 更改为 [player setVolume:100.0];,但没有任何反应。 所以我试着戴上耳机,然后我重试播放这个声音,用耳机我听得很好(老实说有点太多了)。为什么我使用 iPhone 的扬声器听到音量很小的声音?为什么我用耳机听到同样的声音但音量很大?怎么了?

【问题讨论】:

    标签: ios audio avaudioplayer


    【解决方案1】:

    你试过了吗,

    将 MediaPlayer.framework 添加到您的项目目标

    #import <MediaPlayer/MediaPlayer.h>
    
    [[MPMusicPlayerController applicationMusicPlayer] setVolume:1.0];
    

    谢谢!

    【讨论】:

    • 但是要使用它,我应该导入一些东西,或者它只适用于我编写的代码?如果我必须编辑我的代码,你能在这里发布一个 sn-p 来解释我应该做什么吗?谢谢
    • 您必须将 MediaPlayer.framework 添加到您的目标并导入 #import
    • 我尝试了您的解决方案:还是一样,我听不到声音...我该如何解决?您知道我将播放我在应用程序包中放入的声音吗?
    • 请参考这个链接,它会帮助你stackoverflow.com/questions/4164170/…
    • 它不起作用...我试图查看您建议我的页面:同样的问题...加上您在此处发布的代码很旧:它说 [[MPMusicPlayerController applicationMusicPlayer] setVolume:1.0]; 它是从 iOS 7.0 弃用...
    【解决方案2】:

    实际音量在0.01.0 之间。

    除此之外,您可能还必须编辑文件本身。

    确保配合系统音量

    import #import <MediaPlayer/MediaPlayer.h>
        [[MPMusicPlayerController applicationMusicPlayer] setVolume:1.0];//set system vol to max
    

    【讨论】:

    • 感谢您的回答,但我仍然遇到同样的问题:如果我使用 iPhone 扬声器听到它,音频会以低音量播放...另外它说 [[MPMusicPlayerController applicationMusicPlayer] setVolume:1.0]; 已被弃用iOS 7.0...
    【解决方案3】:

    有一件事是音量与0.0 to 1.0 ONLY不同。

    #import <AudioToolbox/AudioToolbox.h>
    
    @property(nonatomic,strong)AVAudioPlayer *player;
    
    NSURL *musicFile = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"sms_alert_circles" ofType:@"mp3"]];
        player = [[AVAudioPlayer alloc] initWithContentsOfURL:musicFile error:nil];
    
    UInt32 doChangeDefaultRoute = 1;
            AudioSessionSetProperty (kAudioSessionProperty_OverrideCategoryDefaultToSpeaker, sizeof (doChangeDefaultRoute), &doChangeDefaultRoute);
    
    [player setVolume:1.0];
    
    [player prepareToPlay];
    [player play];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多