xcode 流无法在 iphone 上播放
xcode stream fail to play on iphone
我正在为 ios 设备开发 iptv。到目前为止,我可以播放一个频道列表。部署目标是 8.0。我已经用 iphone s5 虚拟设备测试过,我可以正确播放流。我决定在真实设备上进行测试。
应用程序 运行 完美,但流打不开。屏幕保持黑色。当虚拟设备可以时,我怎么可能无法在真实设备中打开流?这是我的代码。
func play(var currentChannel:TVChannel){
moviePlayer?.stop();
var URL:String = currentChannel.channelUrl;
var _URL = Encryption().Decrypt(plainText: URL);
var url:NSURL = NSURL(string: _URL)!
println(url);
moviePlayer = MPMoviePlayerController(contentURL: url)
moviePlayer?.controlStyle = MPMovieControlStyle.None;
if(db.select.getStringValue(forKey: db.STRING_VALUE_CURRENT_CHANNEL) == nil){
db.insert.CoreData_Insert(value: "-1", coreDataKey: db.STRING_VALUE_CURRENT_CHANNEL)
}
//send log
Logs().sendHit(currentChannel.channelNumber, accessway: access_way, lastchannel: db.select.getStringValue(forKey: db.STRING_VALUE_CURRENT_CHANNEL).value, username: db.select.getStringValue(forKey: db.STRING_VALUE_USERNAME).value);
db.delete.deleteEntityFromCore(entityName: "StringValue", field_Name: "key", field_Value: db.STRING_VALUE_CURRENT_CHANNEL);
//save the new channel
db.insert.CoreData_Insert(value: currentChannel.channelNumber, coreDataKey: db.STRING_VALUE_CURRENT_CHANNEL);
if let player = moviePlayer{
player.view.frame = self.view.bounds
player.prepareToPlay()
player.scalingMode = .AspectFill
self.view.addSubview(player.view)
self.view.bringSubviewToFront(two_way_channel);
player.play();
}
self.updateOSD();
}
感谢任何帮助。
谢谢
此代码 运行 完美,我的问题是 CDN (akamai) 对请求频道流的客户端的用户代理有限制。虚拟设备用户代理可以通过某种方式通过限制。发生这种情况是因为可能 iphone s5 真实设备和 iphone s5 虚拟设备具有不同的用户代理。
我正在为 ios 设备开发 iptv。到目前为止,我可以播放一个频道列表。部署目标是 8.0。我已经用 iphone s5 虚拟设备测试过,我可以正确播放流。我决定在真实设备上进行测试。 应用程序 运行 完美,但流打不开。屏幕保持黑色。当虚拟设备可以时,我怎么可能无法在真实设备中打开流?这是我的代码。
func play(var currentChannel:TVChannel){
moviePlayer?.stop();
var URL:String = currentChannel.channelUrl;
var _URL = Encryption().Decrypt(plainText: URL);
var url:NSURL = NSURL(string: _URL)!
println(url);
moviePlayer = MPMoviePlayerController(contentURL: url)
moviePlayer?.controlStyle = MPMovieControlStyle.None;
if(db.select.getStringValue(forKey: db.STRING_VALUE_CURRENT_CHANNEL) == nil){
db.insert.CoreData_Insert(value: "-1", coreDataKey: db.STRING_VALUE_CURRENT_CHANNEL)
}
//send log
Logs().sendHit(currentChannel.channelNumber, accessway: access_way, lastchannel: db.select.getStringValue(forKey: db.STRING_VALUE_CURRENT_CHANNEL).value, username: db.select.getStringValue(forKey: db.STRING_VALUE_USERNAME).value);
db.delete.deleteEntityFromCore(entityName: "StringValue", field_Name: "key", field_Value: db.STRING_VALUE_CURRENT_CHANNEL);
//save the new channel
db.insert.CoreData_Insert(value: currentChannel.channelNumber, coreDataKey: db.STRING_VALUE_CURRENT_CHANNEL);
if let player = moviePlayer{
player.view.frame = self.view.bounds
player.prepareToPlay()
player.scalingMode = .AspectFill
self.view.addSubview(player.view)
self.view.bringSubviewToFront(two_way_channel);
player.play();
}
self.updateOSD();
}
感谢任何帮助。 谢谢
此代码 运行 完美,我的问题是 CDN (akamai) 对请求频道流的客户端的用户代理有限制。虚拟设备用户代理可以通过某种方式通过限制。发生这种情况是因为可能 iphone s5 真实设备和 iphone s5 虚拟设备具有不同的用户代理。