2015-10-15 87 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零在你準備SEGUE? –

+0

不,我做了NSLog(「%@」,(NSURL *)sender),它給了我日誌中的URL。 –

回答

24

做各種嘗試和錯誤的戰術超過5天之後,我終於想通了,我的問題是與手機的靜音開關。當它靜音時,音頻不會播放!所以,我說下面的代碼行,指定我爲類播放,現在當我的設備開關處於靜音狀態,

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

謝謝你甚至扮演着!

+1

保存我的屁股。感謝 –

+0

此代碼也適用於我,謝謝,但我無法在iPhone中找到您正在談論的交換機。這是靜音? –

+1

@ArpitBParekh我提到的開關位於音量搖桿按鈕上方的左側面板上方。如果代碼工作和幫助你,upvote將非常感謝:) –

1

對於有這個問題的人,這裏是Swift解決方案。

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

有些documentation