Coder Social home page Coder Social logo

Comments (6)

Natanel-Shitrit avatar Natanel-Shitrit commented on June 25, 2024

I know it's not exactly what you are asking for but after

is merged it's possible to create a "generic" way to skip intros / credits sections, without any 3rd party plugins :)

from findroid.

AbandonedCart avatar AbandonedCart commented on June 25, 2024

@Natanel-Shitrit Assuming your video supports it, this also eliminates a lengthy scan that requires Chromaprint, but it just doesn't have that "Netflix" feel to it.

from findroid.

Natanel-Shitrit avatar Natanel-Shitrit commented on June 25, 2024

@Natanel-Shitrit Assuming your video supports it, this also eliminates a lengthy scan that requires Chromaprint, but it just doesn't have that "Netflix" feel to it.

Most of the shows that I have (Anime) have chapters, that might not be the case for "normal" shows.

You can integrate the chapters with the skip button if you want the "Netflix" feel - I just suggested to use the chapter info as the way of detection for the intro / credits 😄

from findroid.

AbandonedCart avatar AbandonedCart commented on June 25, 2024

It almost begs the question why literally everyone opted for Chromaprint, but not a single static ffmpeg for Mac enables it.

Anyway, that isn't why I was here. I was actually here to ... Edit: well, actually, here isn't the best place for it.

from findroid.

Natanel-Shitrit avatar Natanel-Shitrit commented on June 25, 2024

I guess you are referring to your discussion here jumoog/intro-skipper#52
I saw you said:

They are determining when the button is displayed on their end. I don't know if there is a check somewhere else, but it's essentially keeping the button visible the entire time the intro is playing.

And you linked this check:

val introCheckRunnable = object : Runnable {
override fun run() {
if (player.currentMediaItem != null && player.currentMediaItem!!.mediaId.isNotEmpty()) {
val itemId = UUID.fromString(player.currentMediaItem!!.mediaId)
intros[itemId]?.let { intro ->
val seconds = player.currentPosition / 1000.0
if (seconds > intro.showSkipPromptAt && seconds < intro.hideSkipPromptAt) {
_uiState.update { it.copy(currentIntro = intro) }
return@let
}
_uiState.update { it.copy(currentIntro = null) }
}
}
handler.postDelayed(this, 1000L)
}
}

Doesn't showSkipPromptAt and hideSkipPromptAt is given by the plugin?
So if you fixed the segment.IntroEnd shouldn't it reflect on hideSkipPromptAt?

https://github.com/jumoog/intro-skipper/blob/f49bf50a5b87d470ea387ec1c59b848043a57246/ConfusedPolarBear.Plugin.IntroSkipper/Controllers/SkipIntroController.cs#L89-L102

GitHub only renders snippets from the origin repo 😢

from findroid.

AbandonedCart avatar AbandonedCart commented on June 25, 2024

Actually, no. Two different apps can use the same database, but interpret the values differently. That's what is happening.

This app is getting the value from the plugin, but not necessarily checking it the same way. At the time the plugin was written, it only supported an arbitrary dismissal time of the button. I added the option to keep it visible for the duration of the intro just recently.

The original plugin had an option to retain a section of the intro. It also accounted for the possibility that if the code defaulted to showing the button for the entire intro (it was a fallback back then), it would subtract that time. Oddly, though, this was done AFTER the end time was already determined for the button and only served to mark the playback value.

When using the option to retain the button for the entire intro, most of the original code gets ignored in favor of the raw intro times. The app checks every second, but the plugin is using 3 decimal places. The difference between when the value triggers the display in the app to stop and when the intro ends is somewhere between 1 - 2 seconds off, usually resulting in the button not disappearing right away. If there was intro left, it would likely go unnoticed.

TL;DR intro.hideSkipPromptAt - 1

from findroid.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.