wnyc / cordova-plugin-playerhater Goto Github PK
View Code? Open in Web Editor NEWCordova plugin for PRX's PlayerHater/PRXPlayer audio playback libraries for Android and iOS
Cordova plugin for PRX's PlayerHater/PRXPlayer audio playback libraries for Android and iOS
Can you please tell me the correct json input format of window.audioplayer.playstream().
Now its,
window.audioplayer.playstream( successCallback,
failureCallback,
{
android: "http://fm939.wnyc.org/wnycfm-app.aac",
ios: "http://fm939.wnyc.org/wnycfm-app.aac"}
},
{
"title": "Cuomo; NJ Candidates; and Candy Etiquette",
"artist": "The Brian Lehrer Show",
"image": {
"url": "https://media2.wnyc.org/i/300/300/l/80/1/governor_andrew_cuomo.jpg"
},
"imageThumbnail": {
"url": "https://media2.wnyc.org/i/60/60/l/80/1/governor_andrew_cuomo.jpg"
},
"name": "WNYC 93.9 FM",
"description": "News, Culture & Talk"
},
extra
); @wnycdigital
@CIGEO
Hello. Thanks for that great plugin.
I want to disable or remove prev/next buttons in IOS, i need only play,pause buttons. Please help me!
cordova-build/platforms/android/src/org/prx/playerhater/util/Config.java:24: error: package org.prx.android.playerhater does not exist
[javac] import org.prx.android.playerhater.R;
I have used this simple code to play song from remote, succeed in iPad 2 iOS 7.1 and in iPad air iOS 8 it send 2 success callback and loading shown in status bar, then app close (when media start callback fire).
And other thing is about readme, playfile method arguments are success, error, url, info, position, extra
but it shows in wrong order.
window.audioplayer.playfile(function() {
console.log("success");
}, function() {
console.log("fail");
}, "http://www.podtrac.com/pts/redirect.mp3/audio.wnyc.org/moneytalking/moneytalking20141031pod.mp3", {
'title': 'Title',
'artist': 'artist',
"imageThumbnail": {
"url": "https://media2.wnyc.org/i/60/60/l/80/1/governor_andrew_cuomo.jpg"
}
},0 , {});
Hi,
When using the plugin on Android lollipop devices the playing-notification disappears right after the stream has started. If you start another stream the app will crash. Both in the WYNC and a custom app I'm testing the pluging with.
[aapt] C:\Users\Mohamed\Desktop\test\platforms\android\ant-build\AndroidMan
ifest.xml:13: error: Error: No resource found that matches the given name (at 'r
esource' with value '@xml/playerhater').
BUILD FAILED
E:\Web\Prog\android\a\adt-bundle-windows-x86_64-20140702\sdk\tools\ant\build.xml
:653: The following error occurred while executing this line:
E:\Web\Prog\android\a\adt-bundle-windows-x86_64-20140702\sdk\tools\ant\build.xml
:698: null returned: 1
Total time: 2 seconds
[aapt]
C:\Users\Mohamed\Desktop\test\platforms\android\cordova\node_modules\q\q.js:126
throw e;
^
Error code 1 for command: cmd with args: /s,/c,ant,debug,-f,C:\Users\Mohamed\Des
ktop\test\platforms\android\build.xml,-Dout.dir=ant-build,-Dgen.absolute.dir=ant
-gen
Error: C:\Users\Mohamed\Desktop\test\platforms\android\cordova\build.bat: Comman
d failed with exit code 8
at ChildProcess.whenDone (C:\Users\Mohamed\AppData\Roaming\npm\node_modules
phonegap\node_modules\cordova\node_modules\cordova-lib\src\cordova\superspawn.js
:135:23)
at ChildProcess.emit (events.js:98:17)
at maybeClose (child_process.js:756:16)
at Process.ChildProcess._handle.onexit (child_process.js:823:5)
The correct order for parameters in the playfile function is:
success, error, url, info, position, extra
In the README, it is showing:
success, error, url, position, info, extra
This caused a json error during the android execution.
hi,
when I'm trying to build it on new cordova for android platform it get those error:
\platforms\android\src\org\prx\playerhater\util\Config.java:24: error: cannot find symbol
import org.prx.playerhater.R;
^
symbol: class R
location: package org.prx.playerhater
\platforms\android\src\org\prx\playerhater\plugins\ExpandableNotificationPlugin.java:24: error: cannot find symbol
import org.prx.playerhater.R;
^
symbol: class R
location: package org.prx.playerhater
\platforms\android\src\org\prx\playerhater\plugins\TouchableNotificationPlugin.java:30: error: cannot find symbol
import org.prx.playerhater.R;
^
symbol: class R
location: package org.prx.playerhater
\platforms\android\src\org\prx\playerhater\util\Log.java:18: error: cannot find symbol
import org.prx.playerhater.BuildConfig;
^
symbol: class BuildConfig
location: package org.prx.playerhater
\platforms\android\src\org\prx\playerhater\util\Config.java:85: error: package R does not exist
R.xml.zzz_ph_config_defaults);
^
\platforms\android\src\org\prx\playerhater\ipc\PlayerHaterServer.java:29: error: PlayerHaterServer is not abstract and does not override abstract method enqueueAtP
int) in IPlayerHaterServer
public class PlayerHaterServer extends IPlayerHaterServer.Stub {
^
\platforms\android\src\org\prx\playerhater\ipc\PlayerHaterServer.java:93: error: method does not override or implement a method from a supertype
@OverRide
^
\platforms\android\src\org\prx\playerhater\ipc\PlayerHaterServer.java:103: error: method does not override or implement a method from a supertype
@OverRide
^
\platforms\android\src\org\prx\playerhater\ipc\PlayerHaterServer.java:108: error: method does not override or implement a method from a supertype
@OverRide
^
\platforms\android\src\org\prx\playerhater\ipc\ServerPlayerHater.java:82: error: method play in interface IPlayerHaterServer cannot be applied to given types;
return mServer.play(SongHost.getTag(song), Songs.toBundle(song), 0);
^
required: int,int
found: int,Bundle,int
reason: actual and formal argument lists differ in length
\platforms\android\src\org\prx\playerhater\ipc\ServerPlayerHater.java:92: error: method play in interface IPlayerHaterServer cannot be applied to given types;
return mServer.play(SongHost.getTag(song), Songs.toBundle(song), startTime);
^
required: int,int
found: int,Bundle,int
reason: actual and formal argument lists differ in length
\platforms\android\src\org\prx\playerhater\ipc\ServerPlayerHater.java:112: error: method enqueue in interface IPlayerHaterServer cannot be applied to given types;
return mServer.enqueue(SongHost.getTag(song), Songs.toBundle(song));
^
required: int
found: int,Bundle
reason: actual and formal argument lists differ in length
\platforms\android\src\org\prx\playerhater\ipc\ServerPlayerHater.java:122: error: method enqueueAtPosition in interface IPlayerHaterServer cannot be applied to giv
mServer.enqueueAtPosition(position, SongHost.getTag(song), Songs.toBundle(song));
^
required: int,int
found: int,int,Bundle
reason: actual and formal argument lists differ in length
\platforms\android\src\org\prx\playerhater\plugins\NotificationPlugin.java:79: error: cannot find symbol
int closeResId = activityRes.getIdentifier("zzz_ph_ic_notification", "drawable", cordova.getActivity().getPackageName());
^
symbol: variable cordova
location: class NotificationPlugin
\platforms\android\src\org\prx\playerhater\plugins\NotificationPlugin.java:79: error: cannot find symbol
int closeResId = activityRes.getIdentifier("zzz_ph_ic_notification", "drawable", cordova.getActivity().getPackageName());
^
symbol: variable activityRes
location: class NotificationPlugin
\platforms\android\src\org\prx\playerhater\plugins\TouchableNotificationPlugin.java:52: error: package R does not exist
setTextViewText(R.id.zzz_ph_notification_title, title);
^
\platforms\android\src\org\prx\playerhater\plugins\TouchableNotificationPlugin.java:58: error: package R does not exist
setTextViewText(R.id.zzz_ph_notification_text, artist);
^
\platforms\android\src\org\prx\playerhater\plugins\TouchableNotificationPlugin.java:65: error: package R does not exist
setImageViewUri(R.id.zzz_ph_notification_image, mNotificationImageUrl);
^
\platforms\android\src\org\prx\playerhater\plugins\TouchableNotificationPlugin.java:76: error: package R does not exist
setImageViewResource(R.id.zzz_ph_play_pause_button,
^
\platforms\android\src\org\prx\playerhater\plugins\TouchableNotificationPlugin.java:77: error: package R does not exist
R.drawable.zzz_ph_bt_play);
^
\platforms\android\src\org\prx\playerhater\plugins\TouchableNotificationPlugin.java:82: error: package R does not exist
setImageViewResource(R.id.zzz_ph_play_pause_button,
^
\platforms\android\src\org\prx\playerhater\plugins\TouchableNotificationPlugin.java:83: error: package R does not exist
R.drawable.zzz_ph_bt_pause);
^
\platforms\android\src\org\prx\playerhater\plugins\TouchableNotificationPlugin.java:91: error: package R does not exist
setViewEnabled(R.id.zzz_ph_skip_button, false);
^
\platforms\android\src\org\prx\playerhater\plugins\TouchableNotificationPlugin.java:93: error: package R does not exist
setViewEnabled(R.id.zzz_ph_skip_button, true);
^
\platforms\android\src\org\prx\playerhater\plugins\TouchableNotificationPlugin.java:97: error: package R does not exist
setViewEnabled(R.id.zzz_ph_back_button, false);
^
\platforms\android\src\org\prx\playerhater\plugins\TouchableNotificationPlugin.java:99: error: package R does not exist
setViewEnabled(R.id.zzz_ph_back_button, true);
^
\platforms\android\src\org\prx\playerhater\plugins\TouchableNotificationPlugin.java:123: error: package R does not exist
mNotificationView.setTextViewText(R.id.zzz_ph_notification_title,
^
\platforms\android\src\org\prx\playerhater\plugins\TouchableNotificationPlugin.java:125: error: package R does not exist
mNotificationView.setTextViewText(R.id.zzz_ph_notification_text,
^
\platforms\android\src\org\prx\playerhater\plugins\TouchableNotificationPlugin.java:128: error: package R does not exist
setImageViewUri(R.id.zzz_ph_notification_image,
^
\platforms\android\src\org\prx\playerhater\plugins\TouchableNotificationPlugin.java:141: error: package R does not exist
view.setOnClickPendingIntent(R.id.zzz_ph_skip_button,
^
\platforms\android\src\org\prx\playerhater\plugins\TouchableNotificationPlugin.java:143: error: package R does not exist
view.setOnClickPendingIntent(R.id.zzz_ph_play_pause_button,
^
\platforms\android\src\org\prx\playerhater\plugins\TouchableNotificationPlugin.java:145: error: package R does not exist
view.setOnClickPendingIntent(R.id.zzz_ph_stop_button,
^
\platforms\android\src\org\prx\playerhater\plugins\TouchableNotificationPlugin.java:147: error: package R does not exist
view.setOnClickPendingIntent(R.id.zzz_ph_back_button,
^
\platforms\android\src\org\prx\playerhater\plugins\TouchableNotificationPlugin.java:153: error: package R does not exist
R.layout.zzz_ph_hc_notification);
^
\platforms\android\src\org\prx\playerhater\plugins\TouchableNotificationPlugin.java:171: error: package R does not exist
.setSmallIcon(R.drawable.zzz_ph_ic_notification)
^
\platforms\android\src\org\prx\playerhater\plugins\ExpandableNotificationPlugin.java:43: error: package R does not exist
R.layout.zzz_ph_jbb_notification);
^
\platforms\android\src\org\prx\playerhater\plugins\ExpandableNotificationPlugin.java:45: error: package R does not exist
mExpandedView.setTextViewText(R.id.zzz_ph_notification_title,
^
\platforms\android\src\org\prx\playerhater\plugins\ExpandableNotificationPlugin.java:47: error: package R does not exist
mExpandedView.setTextViewText(R.id.zzz_ph_notification_text,
^
\platforms\android\src\org\prx\playerhater\plugins\ExpandableNotificationPlugin.java:49: error: package R does not exist
mExpandedView.setImageViewUri(R.id.zzz_ph_notification_image,
In XCode, the build error is:
'Reachability.h' not found in 'ReachabilityManager.h'
The DefaultHttpClient and NameValuePair classes were deprecated in API level 22, and removed in API level 23.
Google even took down the documentation for them.
When the documentation was still up, it recommended to switch to HttpUrlConnection for basic tasks such as this.
Info
http://stackoverflow.com/questions/33059933/package-org-apache-http-client-does-not-exist
Log of error:
/Users/juliano/Workspace/app/platforms/ios/MyApp/Plugins/org.nypr.cordova.playerhaterplugin/ReachabilityManager.h:10:9: fatal error: 'Reachability.h' file not found #import "Reachability.h"
Hi there, I'm trying to make this plugin work on cordova, building for android, and testing on android 5.0.1.
I resolved compilation errors based on some other issues already closed, and build is successful.
My testing code uses the code defined in this repository usage section, within deviceready function, :
onDeviceReady: function() {
app.receivedEvent('deviceready');
},
receivedEvent: function(id) {
var parentElement = document.getElementById(id);
var listeningElement = parentElement.querySelector('.listening');
var receivedElement = parentElement.querySelector('.received');
listeningElement.setAttribute('style', 'display:none;');
receivedElement.setAttribute('style', 'display:block;');
console.log('Received Event: ' + id);
window.audioplayer.configure( successCallback, failureCallback);
window.audioplayer.playstream( successCallback, failureCallback,
// stream urls to play on android/ios
{
android: "http://fm939.wnyc.org/wnycfm-app.aac",
ios: "http://fm939.wnyc.org/wnycfm-app.aac"
},
// metadata used for iOS lock screen, Android 'Now Playing' notification
{
"title": "Cuomo; NJ Candidates; and Candy Etiquette",
"artist": "The Brian Lehrer Show",
"image": {
"url": "https://media2.wnyc.org/i/300/300/l/80/1/governor_andrew_cuomo.jpg"
},
"imageThumbnail": {
"url": "https://media2.wnyc.org/i/60/60/l/80/1/governor_andrew_cuomo.jpg"
},
"name": "WNYC 93.9 FM",
"description": "News, Culture & Talk"
},
// javascript-specific json represenation of audio to be played, which will be passed back to
// javascript via successCallback when a stream is launched from a local notification (eg, the alarm clock
extra
);
}
Application loads on android but it does nothing, no sound nor notification message.
Can you help me?
I noticed lock screen controls (play/skip/backward) are not working on my iPad Mini (iOS 10.3).
How can I help debug this?
I create a Test App and a fix the problem in all packages with suffix .R and .BuildConfig but when a build my app and install in my device always crash.... I use this code:
This is my js/app.js
function onLoad() {
document.addEventListener("deviceready", onDeviceReady, false);
}
function onDeviceReady() {
window.audioplayer.playfile(successCallback, failureCallback, "http://www.podtrac.com/pts/redirect.mp3/audio.wnyc.org/moneytalking/moneytalking20141031pod.mp3", {
"title": "Test Radio",
"artist": "You Know",
"image": {
"url": "http://www.jesusfreakhideout.com/cdreviews/covers/seasonone.jpg"
},
"imageThumbnail": {
"url": "https://media2.wnyc.org/i/60/60/l/80/1/governor_andrew_cuomo.jpg"
}
}, 0, {});
window.audioplayer.configure(successCallback, failureCallback);
}
// callback method
var successCallback = function(result) {
console.log('audio callback ' + JSON.stringify(result));
if (result.type === 'progress') {
console.log('progress/duration/available - ' + result.progress + '/' + result.duration + '/' + result.available); // available not currently supported
} else if (result.type === 'state') {
console.log('status - ' + result.state + '/' + result.description);
} else if (result.type === 'error') {
console.log('error - ' + result.reason);
} else if (result.type === 'current') {
console.log('current audio ' + JSON.stringify(result.audio));
} else if (result.type === 'next') {
console.log('skip to next audio track'); // typically fired by remote control/lock screen controls
} else if (result.type === 'previous') {
console.log('skip to previous track'); // typically fired by remote/control/lock screen controls
} else {
console.log('AudioCallback unhandled type (' + result.type + ')');
}
};
var failureCallback = function() {
var elText;
elText = "Audio player failed";
if (window.lang === "fa") {
elText = "Reprodução falhou";
}
return console.log(elText);
};
How do I not get the app broadcasting after being closed?
When I try to play a song my app immediately quits. I've pulled this from the log file:
D/AndroidRuntime(23217): Shutting down VM
E/AndroidRuntime(23217): FATAL EXCEPTION: main
E/AndroidRuntime(23217): Process: com.ionicframework.playerhater371470, PID: 23217
E/AndroidRuntime(23217): java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.Boolean.booleanValue()' on a null object reference
E/AndroidRuntime(23217): at org.prx.playerhater.wrappers.ThreadsafePlayerHater.seekTo(ThreadsafePlayerHater.java:134)
E/AndroidRuntime(23217): at org.prx.playerhater.ipc.PlayerHaterServer.seekTo(PlayerHaterServer.java:100)
E/AndroidRuntime(23217): at org.prx.playerhater.ipc.ServerPlayerHater.seekTo(ServerPlayerHater.java:101)
E/AndroidRuntime(23217): at org.prx.playerhater.wrappers.BoundPlayerHater$3.onServiceConnected(BoundPlayerHater.java:210)
E/AndroidRuntime(23217): at android.app.LoadedApk$ServiceDispatcher.doConnected(LoadedApk.java:1208)
E/AndroidRuntime(23217): at android.app.LoadedApk$ServiceDispatcher$RunConnection.run(LoadedApk.java:1225)
E/AndroidRuntime(23217): at android.os.Handler.handleCallback(Handler.java:739)
E/AndroidRuntime(23217): at android.os.Handler.dispatchMessage(Handler.java:95)
E/AndroidRuntime(23217): at android.os.Looper.loop(Looper.java:135)
E/AndroidRuntime(23217): at android.app.ActivityThread.main(ActivityThread.java:5254)
E/AndroidRuntime(23217): at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(23217): at java.lang.reflect.Method.invoke(Method.java:372)
E/AndroidRuntime(23217): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
E/AndroidRuntime(23217): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
I/Process (23217): Sending signal. PID: 23217 SIG: 9
W/ActivityManager( 747): Force finishing activity 1 com.ionicframework.playerhater371470/.MainActivity
I/WindowState( 747): WIN DEATH: Window{19bba035 u0 com.ionicframework.playerhater371470/com.ionicframework.playerhater371470.MainActivity}
I/WindowState( 747): WIN DEATH: Window{bbaae3b u0 com.ionicframework.playerhater371470/com.ionicframework.playerhater371470.MainActivity}
W/ActivityManager( 747): Exception thrown during pause
W/ActivityManager( 747): android.os.DeadObjectException
W/ActivityManager( 747): at android.os.BinderProxy.transactNative(Native Method)
W/ActivityManager( 747): at android.os.BinderProxy.transact(Binder.java:496)
W/ActivityManager( 747): at android.app.ApplicationThreadProxy.schedulePauseActivity(ApplicationThreadNative.java:704)
W/ActivityManager( 747): at com.android.server.am.ActivityStack.startPausingLocked(ActivityStack.java:825)
W/ActivityManager( 747): at com.android.server.am.ActivityStack.finishActivityLocked(ActivityStack.java:2726)
W/ActivityManager( 747): at com.android.server.am.ActivityStack.finishTopRunningActivityLocked(ActivityStack.java:2583)
W/ActivityManager( 747): at com.android.server.am.ActivityStackSupervisor.finishTopRunningActivityLocked(ActivityStackSupervisor.java:2497)
W/ActivityManager( 747): at com.android.server.am.ActivityManagerService.handleAppCrashLocked(ActivityManagerService.java:11500)
W/ActivityManager( 747): at com.android.server.am.ActivityManagerService.makeAppCrashingLocked(ActivityManagerService.java:11397)
W/ActivityManager( 747): at com.android.server.am.ActivityManagerService.crashApplication(ActivityManagerService.java:12081)
W/ActivityManager( 747): at com.android.server.am.ActivityManagerService.handleApplicationCrashInner(ActivityManagerService.java:11592)
W/ActivityManager( 747): at com.android.server.am.ActivityManagerService.handleApplicationCrash(ActivityManagerService.java:11574)
W/ActivityManager( 747): at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:1406)
W/ActivityManager( 747): at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2208)
W/ActivityManager( 747): at android.os.Binder.execTransact(Binder.java:446)
E/lowmemorykiller( 172): Error writing /proc/23217/oom_score_adj; errno=22
I/ActivityManager( 747): Process com.ionicframework.playerhater371470 (pid 23217) has died
I'm using a Nexus 5 running 5.1. Not really sure where to go from here.
And not only that, but it does't recognize if audio is already playing, play control is always showed. If paused, when pressed, it outputs:
[PRX][Audio] Playable failed to become ready even after retries.
On iOS 8 it works normally.
I got following error at time of build applicaiton.
error: package org.prx.android.playerhater does not exist
and
error: package org.apache.http.client does not exist
I think in your code you missed some packages.
Please guide.
I'm trying to play an mp3 file that is located in the www folder, but can't get it to work [in Android].
If I play it from a internet url, it works perfectly, but locally it just doesn't work:
This works:
window.audioplayer.playfile(
successCallback,
function(r){console.log(r);},
"http://www.tonycuffe.com/mp3/tailtoddle_lo.mp3",
{"title": "Test"},
0, {});
This does not:
window.audioplayer.playfile(
successCallback,
function(r){console.log(r);},
"file:///android_asset/www/u.mp3",
{"title": "The Myth"},
0, {});
I downloaded the file and I'm testing with it to make sure it's not a problem with the file.
can somebody help me with this?
cordova plugin add https://github.com/wnyc/cordova-plugin-playerhater.git
Error: Failed to fetch plugin https://github.com/wnyc/cordova-plugin-playerhater.git via registry.
Probably this is either a connection problem, or plugin spec is incorrect.
Check your connection and plugin name/version/URL.
Error: cmd: Command failed with exit code 4294963228 Error output:
npm ERR! addLocal Could not install C:\Users\di3\AppData\Local\Temp\npm-18380-dc0e7953\git-cache-3c29d384\256e8f6dc52470e3578a2a1ffa8d3645ceb48763
npm ERR! code EISDIR
npm ERR! errno -4068
npm ERR! syscall read
npm ERR! eisdir EISDIR: illegal operation on a directory, read
npm ERR! eisdir This is most likely not a problem with npm itself
npm ERR! eisdir and is related to npm not being able to find a package.json in
npm ERR! eisdir a package you are trying to install.
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\di3\AppData\Roaming\npm-cache\_logs\2017-07-26T09_28_17_782Z-debug.log
"dependencies": {
"@angular/common": "4.3.1",
"@angular/compiler": "4.3.1",
"@angular/compiler-cli": "4.3.1",
"@angular/core": "4.3.1",
"@angular/forms": "4.3.1",
"@angular/http": "4.3.1",
"@angular/platform-browser": "4.3.1",
"@angular/platform-browser-dynamic": "4.3.1",
"@angular/platform-server": "4.3.1",
"@ionic-native/core": "4.1.0",
"@ionic-native/geolocation": "^4.1.0",
"@ionic-native/music-controls": "^4.1.0",
"@ionic-native/native-audio": "^4.1.0",
"@ionic-native/splash-screen": "4.1.0",
"@ionic-native/status-bar": "4.1.0",
"@ionic/cloud-angular": "^0.12.0",
"@ionic/storage": "2.0.1",
"cordova-android": "^6.2.3",
"cordova-plugin-console": "^1.0.5",
"cordova-plugin-device": "^1.1.4",
"cordova-plugin-geolocation": "~2.4.2",
"cordova-plugin-googlemaps": "^1.4.3",
"cordova-plugin-splashscreen": "^4.0.3",
"cordova-plugin-statusbar": "^2.2.2",
"cordova-plugin-whitelist": "^1.3.1",
"ionic-angular": "3.5.3",
"ionic-plugin-keyboard": "^2.2.1",
"ionicons": "3.0.0",
"ng-inline-svg": "^3.3.0",
"rxjs": "5.4.1",
"sw-toolbox": "3.6.0",
"zone.js": "0.8.14",
"cordova-plugin-music-controls": "~2.0.0"
}
Success callback does not fire on iOS. The console shows the PRX plugin changing states. But no callback is executed. Is there an event model that's not documented?
[PRX][Audio] Resume (or start) playing current playable
2015-05-04 17:30:49.235 [19074:4733510] PRXPlayer Plugin state is MEDIA_RUNNING
I'm getting an occasional crash when using this on Android, some devices it crashes 100% of the time, others it comes and goes. Here is a stack trace I was able to retrieve:
Android: 4.4.2
Manufacturer: LGE
Model: VK810 4G
Date: Tue May 12 16:24:46 PDT 2015
java.lang.NullPointerException
at org.prx.playerhater.wrappers.ThreadsafePlayerHater.seekTo(ThreadsafePlayerHater.java:134)
at org.prx.playerhater.ipc.PlayerHaterServer.seekTo(PlayerHaterServer.java:100)
at org.prx.playerhater.ipc.ServerPlayerHater.seekTo(ServerPlayerHater.java:101)
at org.prx.playerhater.wrappers.BoundPlayerHater$3.onServiceConnected(BoundPlayerHater.java:210)
at android.app.LoadedApk$ServiceDispatcher.doConnected(LoadedApk.java:1124)
at android.app.LoadedApk$ServiceDispatcher$RunConnection.run(LoadedApk.java:1141)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5118)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:606)
at dalvik.system.NativeStart.main(Native Method)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.