Comments (10)
Done, the bug remains.
from cordova-plugin-media.
- You didn't mention before that you are working with a file that was just created with
captureAudio
. - Why should this make a difference? The relevant part here is that you create a
new Media
object with a path to a certain file. If this plugin doesn't actually read the file data until you callplay()
- then it just can't know the duration. You will have to check this plugin's code to understand when it is reading the file to get the duration.
If the current state then is not what you want, create a new issue and suggest this to be implemented or best create a PR yourself.
from cordova-plugin-media.
I have a solution to get the correct duration after recording on iOS:
After below line:
cordova-plugin-media/src/ios/CDVSound.m
Line 777 in b1c1353
Add:
[self prepareToPlay:audioFile withId:mediaId];
double duration = round(audioFile.player.duration * 1000) / 1000;
[self onStatus:MEDIA_DURATION mediaId:mediaId param:@(duration)];
from cordova-plugin-media.
What platform? What platform version?
What device were you testing on? What OS version was that running?
What version of the plugin?
What is MEDIA
? Do you mean Media
?
from cordova-plugin-media.
@janpio
platform android(v7.0.0 ) on "HTC One A9" & "Samsung galaxy A7" , both android nougat and 5.0.2 plugin version.
sorry for mistake, yes Media is true. (include recorded voice and video in this case).
from cordova-plugin-media.
Then first update your cordova-android
to the current version 7.1.1 to make sure this is not fixed already.
from cordova-plugin-media.
Documentation says:
media.getDuration
Returns the duration of an audio file in seconds. If the duration is unknown, it returns a value of -1.
Is it possible that the data is actually not available before play
was executed? When is the file actually requested/loaded?
from cordova-plugin-media.
I tried different ways,data should not available "onSuccess"? working version is like:
navigator.device.capture.captureAudio(onSuccess, onError, options);
function onSuccess(mediaFiles) {
var path,recordedVoice,stat,interval,;
path = mediaFiles[0].fullPath;
recordedVoice = new Media(path, function(){console.log("well played!")}, function(e){console.log("error:"+e)},function(status){stat=status});
recordedVoice.play();
recordedVoice.pause();
document.getElementById("playBTN").addEventListener("click",()=>{
var constant=100/(recordedVoice.getDuration()*10);
///etc..
from cordova-plugin-media.
Yes, I think that's a need, thanks a lot.
from cordova-plugin-media.
I have a solution to get the correct duration after recording on iOS:
After below line:
cordova-plugin-media/src/ios/CDVSound.m
Line 777 in b1c1353
Add:
[self prepareToPlay:audioFile withId:mediaId]; double duration = round(audioFile.player.duration * 1000) / 1000; [self onStatus:MEDIA_DURATION mediaId:mediaId param:@(duration)];
Nice catch zhang! I don't know how to do it, but a pull request for this would be great
from cordova-plugin-media.
Related Issues (20)
- In Android include webView cookies for streaming in setDataSource()
- Do you support Electron? HOT 2
- Detection of missing microphone access permission HOT 2
- Android 12 (api 31-32) - audio not playing error 1 HOT 8
- Get frame(s) from Video stream HOT 1
- Document preference value "KeepAVAudioSessionAlwaysActive" used in config.xml
- Android: play & seekTo => error (-38, 0), start called in state 4
- Audio stream starts delay
- Error on install "cordova-plugin-media" - Cannot find plugin.xml HOT 11
- ios only: sound not playing when app is in background and some other app has sound on
- Can't record audio on app targeting Android 13 due to plugin requesting WRITE_EXTERNAL_STORAGE permission (which always fails) HOT 10
- Exception when Play Sound Android API v33 HOT 6
- Can't play in background
- i can't play audio in cordova 12 HOT 14
- i can't play audio
- I want to use a cordova plugin in a capacitor project. But import doesn't work. And I cannot find instructions how to use it. I installed npm i cordova-plugin-dbmeter old code would use import { DBMeter } from 'cordova-plugin-dbmeter'; But that gives an error. I don't know what to do to make this part work: constructor(private dbMeter: DBMeter, ... And I find different options: create capacitor plugin, create a wrapper, or call directly. I cannot find in which cases you should do what. But whatever I try, I cannot get it to work. Can there be more examples for using cordova-plugins in capacitor-code? HOT 1
- Audio from other app is not returning to continue playing after sound from plugin finish playing HOT 5
- Android 14 Won't Play MP3 files
- Failed to start recording using AVAudioRecorder: (null) code:1 HOT 1
- Anomalous Permission Usage (for RECORD_AUDIO permission)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cordova-plugin-media.