我正在使用phonegap的Media类来流式传输来自url的音频,其中url的格式是带端口的ip。在Android上工作正常,声音正在播放。在iOS上没有玩,我不知道为什么。谁能告诉我我做错了什么? 这是我的流媒体功能。
function playAudio(src) {
// Create Media object from src
setAudioPosition("Please wait...");
my_media = new Media(src, onSuccess, onError);
// Play audio
myMedia.play({ playAudioWhenScreenIsLocked : false })
$('.jp-play').hide();
$('.jp-pause').show();
// Update my_media position every second
if (mediaTimer == null) {
mediaTimer = setInterval(function() {
// get my_media position
my_media.getCurrentPosition(
// success callback
function(position) {
if (position > -1) {
setAudioPosition("Playing");
}
},
// error callback
function(e) {
console.log("Error getting pos=" + e);
setAudioPosition("Error: " + e);
}
);
}, 1000);
}
}
在项目的xml中,我在白名单中添加了服务器的IP,但是再次无效。我怎么解决它?
答案 0 :(得分:0)
您好我找到了解决方案。我使用了devgeeks库。这里是每个有同样问题的人的链接 https://github.com/devgeeks/ExampleHTML5AudioStreaming
答案 1 :(得分:-1)
几个月前有同样的问题,手机屏幕播放器没有在ios上运行,但是它在android上运行,这样做是为了让我的播放器本地化(Objetive c)并将其称为de phonegap side(javascript)。
通过制作插件
- (void)play:(CDVInvokedUrlCommand *)command{
NSString* scr = [command.arguments objectAtIndex:0];
CDVPluginResult* pluginResult = nil;
NSString* javaScript = nil;
@try {
if (scr != nil) {
if (player.isPreparedToPlay) {
player.contentURL = [NSURL URLWithString:scr];
[player play];
}else {
MPMoviePlayerController* objplayer =[[MPMoviePlayerController alloc] initWithContentURL:[NSURL URLWithString:scr]];
self.player = objplayer;
[self.player prepareToPlay];
player.movieSourceType = MPMovieSourceTypeStreaming;
player.view.hidden = YES;
player.useApplicationAudioSession = YES;
[player play];
}
pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK];
javaScript = [pluginResult toSuccessCallbackString:@"respuesta"];
}
} @catch (id exception) {
pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_JSON_EXCEPTION messageAsString:[exception reason]];
javaScript = [pluginResult toErrorCallbackString:@"respuesta con error"];
}
[self writeJavascript:javaScript];
}
之后,您在config.xml中调用插件
然后在你的javascript中
Cordova.exec(null, null, "playMusic", "Play", [url,url]);