stsaz / phiola

Fast audio player, recorder, converter for Windows, Linux & Android
BSD 2-Clause "Simplified" License
96 stars 6 forks source link

Can't play .ogg audio #14

Closed CoolCrescent186 closed 2 weeks ago

CoolCrescent186 commented 7 months ago

Phiola on Android can't play *.ogg sound files, ones which I can play with any other music player. Also can't play .shn files, but that isn't a bug because it isn't supported.

stsaz commented 7 months ago

can't play *.ogg sound files

Interesting, most likely these .ogg files are not Vorbis but Opus or FLAC? What error does it show in this case? What's printed in system logs? Can you attach one of these files here so I can test it myself?

CoolCrescent186 commented 7 months ago

can't play *.ogg sound files

Interesting, most likely these .ogg files are not Vorbis but Opus or FLAC? What error does it show in this case? What's printed in system logs? Can you attach one of these files here so I can test it myself?

When I converted the file to .flac using phiola, they played without issue, which makes your theory sound plausible. I don't know how to test system logs, but I can describe the behavior; it would pretend to play for a split second, no audio would happen, and then it would just pretend like it was all fine. I included a test file here- it's from archive.org regarding the Grateful Dead at Nassau Coliseum on 03-29-1990. This track is a tuning track, so it's quiet, I think any other file would be too large to include here. {01} 'Stranger!'.ogg.zip

stsaz commented 7 months ago

I was able to play by phiola the file you attached even on '2013 old phone running Android 6. What's your phone model and Android version?

it would pretend to play for a split second, no audio would happen, and then it would just pretend like it was all fine

Looks like your system audio player just doesn't support OGG Vorbis. Note that currently phiola on Android uses the audio playing mechanism provided by the system - it can play only what your system supports.

which I can play with any other music player

I guess those players don't use system audio player like phiola does but they decode audio with their own native implementation.

CoolCrescent186 commented 7 months ago

I was able to play by phiola the file you attached even on '2013 old phone running Android 6. What's your phone model and Android version?

it would pretend to play for a split second, no audio would happen, and then it would just pretend like it was all fine

Looks like your system audio player just doesn't support OGG Vorbis. Note that currently phiola on Android uses the audio playing mechanism provided by the system - it can play only what your system supports.

which I can play with any other music player

I guess those players don't use system audio player like phiola does but they decode audio with their own native implementation.

I'm using a Moto G100 (nio) with LineageOS 20. I feel relatively confident that this device can play the audio natively, but then again I have no idea how to check what this device can play natively.

stsaz commented 7 months ago

with LineageOS 20

I did a quick search and found this: https://gitlab.com/LineageOS/issues/android/-/issues/549

And I think it's still not fixed because I don't see any commits - it looks like they just close issues automatically.

P.S. I plan to switch phiola playback mechanism to the native implementation in the future, but it won't be any time soon (would require more effort that I currently can handle and then a huge testing process). For now, the only option for you is to just use the other players that work correctly with OGG Vorbis :)

CoolCrescent186 commented 7 months ago

Thanks for the reply! I think the simplest solution for me will be to convert all the .ogg into .flac, which plays perfectly though Phiola (and can convert from .ogg to .flac with no problems- isn't that wild?)

I suppose I'll leave it open because technically it is still a bug, but for any readers this is not an issue with the application, rather with (I think) the OS.

stsaz commented 7 months ago

convert all the .ogg into .flac

The only downside is that .flac files will be up to 10 times larger than the original .ogg(Vorbis) files. (FLAC encoder won't be able to re-compress as good as Vorbis, because they are different in nature). But if the storage space isn't an issue for you, that's fine.

Another option is to convert to .m4a(AAC-LC) with similar bitrate setting, but in this case you would probably lose a tiny bit of original audio quality because AAC-LC is also a lossy codec.

CoolCrescent186 commented 7 months ago

convert all the .ogg into .flac

The only downside is that .flac files will be up to 10 times larger than the original .ogg(Vorbis) files. (FLAC encoder won't be able to re-compress as good as Vorbis, because they are different in nature). But if the storage space isn't an issue for you, that's fine.

Another option is to convert to .m4a(AAC-LC) with similar bitrate setting, but in this case you would probably lose a tiny bit of original audio quality because AAC-LC is also a lossy codec.

Yeah, disk space is no issue, I have 128GB, and think that 64GB is a lot. Worst comes to worst, I do have an SD card slot.

stsaz commented 2 months ago

@CoolCrescent186 Hi! I've released v2.2-beta0 with native AAudio playback, and I think you should be able to play all audio formats now (those supported by phiola, of course). Will you be able to check if this works for you?

CoolCrescent186 commented 2 months ago

Still no luck. Tested using LineageOS 21 on a Motorola Moto G100 with GAPPs, June 17 build.

stsaz commented 2 months ago

Hm, that's strange. There is no dependency on system media player for audio playback in v2.2-beta0, so phiola should either play all flac, ogg, m4a, etc. files or nothing... Are you sure you're using phiola-v2.2-beta0 build and not v2.1.5? https://github.com/stsaz/phiola/releases/tag/v2.2-beta0

CoolCrescent186 commented 2 months ago

I actually was using the old build! I had been using F-Droid. Let me update now and test some OGG and SHN files.

CoolCrescent186 commented 1 month ago

OGG are fine, but now files converted from OGG to FLAC don't work! I'll send in a file example if you need one. SHN do not work (I don't think they're ever supposed to work).

stsaz commented 1 month ago

files converted from OGG to FLAC don't work! I'll send in a file example if you need one

Did you try to play this FLAC file on phiola desktop version (Linux or Windows)? Yes, please attach the sample file here - I'll check it.

SHN do not work

That's true. I looked it up - this is an obsolete lossless codec. FLAC should be much much better.

CoolCrescent186 commented 1 month ago

Yeah, converted SHN files work flawlessly. This is a test file in my Google Drive (github won't let me attach it here)- https://drive.google.com/file/d/1koJ9FtJErlr94bcegTMMaj_qkOMf0k-W/view?usp=sharing File played fine on my Mint machine with phiola, (I'm not super capable where my package manager ends, so it took me a while to get it operational, even though I've been dailying Linux since I was 15) on 2.1.5, and I gave up trying to get BETA 2.2 running, as it seemed to be an Android-only release. Thanks for all your help, stsaz!

stsaz commented 1 month ago

This is a test file

I plan to add the support for int24 format for Android, but currently it's not implemented. Thanks for the example file, because I almost forgot that :) I'll update when this feature is ready.

it took me a while to get it operational

Did you follow these steps? https://github.com/stsaz/phiola#linux What was the actual problem? Maybe I should add something to make it more clear - please advise.

CoolCrescent186 commented 1 month ago

I downloaded "phiola-2.1.5-linux-amd64.tar.zst" (I am running an Intel processor, so I believe this to be correct). I then ran "tar xf phiola-2.1.5-linux-amd64.tar.zst -C ~/bin", and then "ln -s ~/bin/phiola-2/phiola ~/bin/phiola". I ran all of these commands as a standard, NOT super user. I then opened the new /home/[name]/bin/ folder, and clicked on the new symbolic link and... nothing happened? It took me a while to think to navigate into the "phiola-2" directory, and run "./phiola help", read the options, and run "./phiola gui", which then worked as expected. Compiling a .deb, or making a Flatpak that automatically opens the gui would make this a lot more accessible for me. I also hate random /home/ folders that I didn't make, so I'd move it to a .folder just to add a layer of obscurity from my file managers. I understand that all of that is lots of work, so those are just my thoughts as a non-developer. Thanks for this project as-is, though, it is more CPU efficient than even VLC is! I'd love a 32-bit ARM version for Android 7.1.1 for an old phone I have laying around, that could make a perfect MP3 player for me! Thanks for all this work and reading all of my ramblings!

stsaz commented 1 month ago

It seems that you missed this step:

cp ~/bin/phiola-2/mod/gui/phiola.desktop ~/.local/share/applications

If you do that, phiola will appear in the list of all your system applications, and it will start in GUI mode as expected.

If you want to execute phiola GUI from terminal - just type phiola gui as explained here: https://github.com/stsaz/phiola#how-to-use-gui (There's no need to navigate to phiola directory, because after ln -s command you can just type phiola in your terminal window, no matter what the current directory is.)

Unpacking phiola to $HOME/bin/phiola-2 directory is not a requirement - you can unpack to any directory you want. Also, creating the link is not a requirement - it's just the most obvious option for Linux users, because there is $HOME/bin already in $PATH by default.

.deb/.rpm package may seem easier to deal with, but it is not a good option because it would require root privileges to install. Furthermore, users won't be able to choose the output directory themselves and install several different phiola versions on the same system.

I can edit README and combine the separate commands from Linux installation section into one, so it will be easier to copy-paste, something like this:

wget https://github.com/stsaz/phiola/releases/download/v2.1.5/phiola-2.1.5-linux-amd64.tar.zst
mkdir -p ~/bin
tar xf phiola-2.1.5-linux-amd64.tar.zst -C ~/bin
ln -s ~/bin/phiola-2/phiola ~/bin/phiola
cp ~/bin/phiola-2/mod/gui/phiola.desktop ~/.local/share/applications

Do you think this will be better for an average Linux user?

CoolCrescent186 commented 1 month ago

Yeah, I completely missed that step. Thanks for all the explanations! And yes, for someone with less technical expertise, that will definitely be much easier to copy and paste... for good or for worse (I remember that copying and pasting scripts without knowing what they do is a security concern, but I still think this is fine). I just ran the command, and... everything kinda works... I am unable to launch Phiola from my start menu in Cinnamon, but I'm not sure if that's a Cinnamon problem or what. The error message I see is Error while opening file: No application is registered as opening this file. Everything else is working, though.

stsaz commented 1 month ago

Hi! v2.2-beta2 should now be able to play int24 FLAC files: https://github.com/stsaz/phiola/releases/download/v2.2-beta2/phiola-2.2-beta2-android-arm64.apk Please check whether all of your .flac files work with this version.

I'd love a 32-bit ARM version for Android 7.1.1

This build should work: https://github.com/stsaz/phiola/releases/download/v2.2-beta2/phiola-2.2-beta2-android-arm.apk But keep in mind that it's not completely optimized and some features are disabled (currently, ARM version is low priority).

CoolCrescent186 commented 2 weeks ago

I completely forgot about this until just now! Yes, that update worked. In doing so, it introduced the issue of not being able to change audio playback devices mid audio track. Now, if I take my headphone out of my phone, it skips the rest of the song when I click "play" again. No idea why. Should I make a new issue for this problem?

stsaz commented 2 weeks ago

There is completely different approach for playback in v2.2 - now all decoding is done by phiola and not Android system as it was before.

Now, if I take my headphone out of my phone, it skips the rest of the song when I click "play" again.

I'll test that, thanks for the info!

stsaz commented 2 weeks ago

Now, if I take my headphone out of my phone, it skips the rest of the song when I click "play" again.

Resolved in v2.2.5