0
A
回答
0
嘗試解析M3U8文件,並得到實際的URL的資源,然後通過這個URL AudioStreamer。
Here - >https://github.com/Achillesun/M3U8Paser你可以找到解析播放列表的M3U8Parser庫。
下面是M3U8格式的示例:
#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:1
#EXTINF:10,
http://video.example.com/segment0.ts
#EXTINF:10,
http://video.example.com/segment1.ts
#EXTINF:10,
http://video.example.com/segment2.ts
#EXT-X-ENDLIST
1
爲什麼你需要使用AudioStreamer
上課的時候你可以用AVPlayer
輕鬆地做到這一點,雖然AudioStreamer
使用AVPlayer
內部。
以下代碼使用AVPlayer
播放實時流式音頻,您可以更改源URL以嵌入您的流。
不要忘記添加AVFoundation.framework在
Linked Frameworks and Libraries
部分下項目 - >靶>鏈接的框架和庫
#import "ViewController.h"
#import <AVFoundation/AVFoundation.h>
@interface ViewController()
{
AVPlayerItem * mPlayerItem;
}
@property (readwrite, retain, setter=setPlayer:, getter=player) AVPlayer* mPlayer;
@property (strong) AVPlayerItem *mPlayerItem;
@end
@implementation ViewController
@synthesize mPlayer;
@synthesize mPlayerItem;
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
// *** Initialise player and register observer ***
NSURL *url = [NSURL URLWithString:@"http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8"];
self.mPlayerItem = [AVPlayerItem playerItemWithURL:url];
self.mPlayer = [AVPlayer playerWithPlayerItem:self.mPlayerItem];
// *** Add Observer on AVPlayerItem to observer progress & status ***
[self.mPlayerItem addObserver:self forKeyPath:@"status" options:NSKeyValueObservingOptionNew context:nil];
[self.mPlayer play];
}
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object
change:(NSDictionary *)change context:(void *)context
{
if (object == self.mPlayerItem && [keyPath isEqualToString:@"status"])
{
if (self.mPlayer.currentItem.status == AVPlayerItemStatusFailed)
{
NSLog(@"------player item failed:%@",self.mPlayer.currentItem.error);
}
else if (self.mPlayer.currentItem.status == AVPlayerStatusReadyToPlay)
{
NSLog(@"Play");
[self.mPlayer play];
}
else if (self.mPlayer.currentItem.status == AVPlayerStatusFailed)
{
// something went wrong. player.error should contain some information
NSLog(@"Unable to play.");
NSLog(@"%@",self.mPlayer.error);
}
else if (self.mPlayer.currentItem.status == AVPlayerItemStatusUnknown)
{
NSLog(@"AVPlayer Unknown");
}
}
}
我希望它可以幫助你理解,還有很多的東西,你可以用AVPlayer
在給定的代碼。快樂編碼:)
+0
是的,它爲我工作... –
相關問題
- 1. 無法在android平臺上流式傳輸.m3u8文件
- 2. Exoplayer無法傳輸某些AAC編碼音頻.m3u8
- 3. Android能夠流式傳輸.m3u8文件嗎?
- 4. 無法傳輸二進制文件
- 5. WCF Streaming無法傳輸大文件
- 6. 無法傳輸圖像文件
- 7. 如何從Windows Phone 7中的m3u8文件流式傳輸視頻文件
- 8. iOS「無法解碼」m3u8
- 9. 通過m3u8流式傳輸到iPhone
- 10. m3u8文件是否可以包含其他m3u8文件?
- 11. FileUpload無需傳輸文件
- 12. 的MPMoviePlayerController的iOS流M3U8文件無法正常工作
- 13. Safari 5.1無法播放HTTP實時流(m3u8文件)
- 14. 無法在Safari中播放.m3u8文件(MAC OS)
- 15. 解壓文件太慢,無法傳輸多個文件
- 16. 使用Django文件傳輸時無法下載文件
- 17. MPMoviePlayerController和本地M3U8文件
- 18. Jwplayer不玩m3u8文件?
- 19. M3U8文件內容訂購
- 20. 傳輸SFTP:無法上傳文件錯誤
- 21. 無法上傳大文件
- 22. 無法上傳文件
- 23. 無法上傳phing文件
- 24. 無法上傳大文件
- 25. 無法上傳文件
- 26. 無法上傳文件
- 27. 無法上傳文件。 Laravel
- 28. php無法上傳文件
- 29. uploadify無法上傳文件
- 30. 無法上傳htaccess文件
當你已經有'AVPlayer'來播放你現場的音頻/視頻流時,爲什麼你需要'AudioStreamer'?使用'AVPlayer'來流式傳輸音頻。 –