2015-10-15 12 views
5

私のアプリでURLからオーディオを再生しようとしています。 iOS 8(シミュレータと物理デバイス)ではすべてが予想どおりに行われます。 iOS 9の場合、それはシミュレータでは機能しますが、デバイス上ではオーディオは単に再生されません。ストリーミングが表示され、再生をクリックすると、オーディオがロードされて再生されているがサウンドが再生されていないことがプログレスバーに表示されます。この問題は、iOS 9の物理デバイスで発生しています。これは、iOS 8物理デバイスではまったく問題なく動作します。AVPlayerでオーディオが再生されない - iOS 9、目的 - C

シンプルなボタンを作成しました。ボタンをクリックすると、AVPlayerViewControllerがロードされ、AVPlayerは指定されたURLで初期化されます。コードは以下の通りです:

#import "ViewController.h" 
#import <AVKit/AVKit.h> 
#import <AVFoundation/AVFoundation.h> 


@interface ViewController() 

@end 

@implementation ViewController 

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 
} 

- (void)didReceiveMemoryWarning { 
    [super didReceiveMemoryWarning]; 
    // Dispose of any resources that can be recreated. 
} 
- (IBAction)playAudio:(id)sender { 
    NSURL *url = [NSURL URLWithString:@"https://path/to/my.mp3"]; 
    [self performSegueWithIdentifier:@"playSegue" sender:url]; 
} 

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
    AVPlayerViewController *viewController = (AVPlayerViewController *)segue.destinationViewController; 
    viewController.player = [AVPlayer playerWithURL:(NSURL *)sender]; 
} 

@end 
+0

があなたのセグエの準備中のURL nilでありますか? –

+0

いいえ、NSLog( "%@"、(NSURL *)sender) 'を実行し、ログにURLを指定しました。 –

答えて

24

5日間にわたって様々な試行錯誤戦術を行った後、私はようやく私の問題は、携帯電話のミュートスイッチであったことを考え出しました。ミュート状態になると、オーディオは再生されません!だから、私は再生としての私のカテゴリを指定するには、次のコード行を追加し、今では私のデバイスのスイッチがミュート

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil]; 

上にある場合でも、演じていただきありがとうございます!

+1

私のお尻を保存しました。ありがとう –

+0

このコードは私にとってもうまくいきます。ありがとうございます。しかし、あなたが話しているスイッチをiPhoneで見つけることができませんでした。それはミュートですか? –

+1

@ArpitBParekh私が言及したスイッチは、ボリュームロッカーボタンの上の左側のパネルにあります。コードが働いて助けてくれたら、アップヴォートは本当に感謝しています:) –

1

この同じ問題が発生した場合は、ここをクリックしてください。

try! AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, with: []) 

そして、いくつかのdocumentation

関連する問題