私はストリーミングアプリをiOSしています。私のストリーミングURLはうまく動作します。 AudioStreamerを.m3u8ファイルのURLに使用するにはどうすればよいですか?.m3U8ファイルをストリーミングできません
は
私はストリーミングアプリをiOSしています。私のストリーミングURLはうまく動作します。 AudioStreamerを.m3u8ファイルのURLに使用するにはどうすればよいですか?.m3U8ファイルをストリーミングできません
は
試してみて、解析M3U8ファイルをして、リソースへの実際のURLを取得し、AudioStreamerにそのURLを渡す事前にありがとうございます。
ここに - >https://github.com/Achillesun/M3U8Paserあなたはプレイリストを解析するM3U8Parserのlibを見つけることができます。
以下はM3U8フォーマットの例である:あなたがAudioStreamer
が内部AVPlayer
を使用していますけれどもあなたは、簡単にAVPlayer
でそれを行うことができるときAudioStreamer
クラスを使用する必要があるのはなぜ
#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
。
コードでは、AVPlayer
を使用してライブストリーミングオーディオを再生すると、ソースURLを変更してストリームを埋め込むことができます。
プロジェクト - >標的 - の下であなたの
Linked Frameworks and Libraries
セクションにAVFoundation.frameworkを追加することを忘れないでください>リンクされたフレームワークとライブラリ
#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
とすることができます。幸せなコーディング:)
それは私のために働いた... –
ライブオーディオ/ビデオストリームを再生するために 'AVPlayer 'をすでに持っている場合、なぜ' AudioStreamer'が必要なのですか?オーディオをストリームするには 'AVPlayer'を使います。 –