我下载了DigitalDJ / AudioStreamer代码,用于我正在播放的播放器,这是我下载的项目:https://github.com/DigitalDJ/AudioStreamer
在我决定升级之前使用过这个库它支持多线程,
但是当我将流服务器http:// thor.nickpack.com:9000的地址更改为我的服务器地址时,它不会运行音频。
将viewController中TextField中的服务器路径替换为我的路径:http:// 184.154.37.132:7075查看我的问题。
另一个解决方案是修改支持多线程的旧播放器,我尝试了几个代码而不能,就在我找到DigitalDJ / AudioStreamer时,但我遇到了上面提到的问题,
这是没有多线程的示例应用的链接:http://www.mediafire.com/?eb7a6a87e8tqcbc
如果有人知道如何在backgorund中实现音频或者如何解决流媒体服务器的问题我很感激。
答案 0 :(得分:1)
经过很长一段时间,几乎疯狂试图通过评论此trexo AudioStreamer.m中的代码来解决问题
// hintForMIMEType
//
// Make a more informed guess on the file type based on the MIME type
//
// Parameters:
// mimeType - the MIME type
//
// returns a file type hint that can be passed to the AudioFileStream
//
/*
+ (AudioFileTypeID)hintForMIMEType:(NSString *)mimeType
{
AudioFileTypeID fileTypeHint = kAudioFileMP3Type;
if ([mimeType isEqual:@"audio/mpeg"])
{
fileTypeHint = kAudioFileMP3Type;
}
else if ([mimeType isEqual:@"audio/x-wav"])
{
fileTypeHint = kAudioFileWAVEType;
}
else if ([mimeType isEqual:@"audio/x-aiff"])
{
fileTypeHint = kAudioFileAIFFType;
}
else if ([mimeType isEqual:@"audio/x-m4a"])
{
fileTypeHint = kAudioFileM4AType;
}
else if ([mimeType isEqual:@"audio/mp4"])
{
fileTypeHint = kAudioFileMPEG4Type;
}
else if ([mimeType isEqual:@"audio/x-caf"])
{
fileTypeHint = kAudioFileCAFType;
}
else if ([mimeType isEqual:@"audio/aac"] || [mimeType isEqual:@"audio/aacp"])
{
fileTypeHint = kAudioFileAAC_ADTSType;
}
return fileTypeHint;
}*/
使用此代码注释掉在我的服务器上播放的音频
答案 1 :(得分:0)
我在使用AudioStreamer连接MP3流时遇到问题。该示例可在Simulator上运行,但不在设备上运行。我认为因为模拟器不是ios设备的精确副本。在模拟器上,它使用安装在mac上的quicktime。
对于本地MP3文件,请使用AVAudioPlayer。
对于远程MP3流使用AVPlayer。
一个很好的示例项目在
https://github.com/valvoline/CPStreamPlayer
远程流通常需要时间来连接超时。此示例显示其缓冲。
在Github上搜索AVPlayer的几个样本。
CPStreamPlayer / AVPlayer支持重定向,所以我们有
http://stream.fireplayer.com/greyhound/dyn?action=stream.StreamMix&id=1785
但是已经重定向在亚马逊上生成Mp3文件/流
http://s3.amazonaws.com/fireplayer_mp3/1785.mp3?AWSAccessKeyId=AKIAJAHV5HUV4TVRF5VA&Expires=1337595252&Signature=c%2FH%2FO9AACkovm%2BAhbWyD7E9Hb6A%3D";