mcruncher / worshipsongs-android

Android app for Worship Songs
GNU General Public License v3.0
8 stars 8 forks source link

As a Lyrics Projector, I can see an overview of all song parts all the time while the Audience sees only the current song part #262

Closed pixel2user closed 7 years ago

pixel2user commented 7 years ago

The "crowd" should see only the selected song part, but the projector operator should see more infos!

How to Enable Intel® Wireless Display Differentiation for Miracast on Intel® Architecture phone https://software.intel.com/en-us/articles/how-to-enable-intel-wireless-display-differentiation-for-miracast-on-intel-architecture

Dual Video Android Apps Using Intel® WiDi Technology Whitepaper https://software.intel.com/en-us/articles/dual-video-android-apps-using-intel-widi-technology

https://software.intel.com/en-us/blogs/2014/07/18/multitasking-on-android-devices-android-miracast-extended-screen-app

sskjames commented 7 years ago

Hi, we thank you for your interest in this app. It's good to learn that this app is being used in many different ways than we originally envisioned. This will be an interesting feature to add, however we are not sure how many phones will support this. We are interested to learn more about your use case. Do you use WorshipSongs in a Church or other public meetings?

pixel2user commented 7 years ago

All Android 4.2+ devices and all Windows 8.1+ devices (PCs, Tablets and Smartphones) should support Miracast ("can roughly be described as HDMI over Wi-Fi"). In standard mode the display is mirrored. The extended display mode has to be activated by the app developer. To bad not many app developers seams to know/care about that really cool feature...

https://software.intel.com/en-us/blogs/2014/07/18/multitasking-on-android-devices-android-miracast-extended-screen-app

We use OpenLP for Lyrics projection at our church services and other meetings but would like to use your Android app. As long as the 'extended display' feature is missing we are stuck with the full blown OpenLP. Your app is light and beautiful! :-)

Hint: A dual display app can use Mircacast or a display connected via HDMI! :-)

pixel2user commented 7 years ago

We use the Miracast adapter from Microsoft ("Microsoft Wireless Display Adapter v2"): https://www.microsoft.com/accessories/en-us/products/adapters/wireless-display-adapter-2/p3q-00001

YouTube video embedded in Microsoft product site: https://www.youtube.com/watch?v=eUTTJfEKKlw

sskjames commented 7 years ago

Thanks for all the information. To be honest, we were not aware of this before. We never thought WorshipSongs would ever compete with OpenLP :-) We'll give this a try.

sskjames commented 7 years ago

Guys,

Please have a look at Android MediaRouter API

sskjames commented 7 years ago

Here is some interesting reading material to understand the different wireless standards. Wireless Display Standards Explained: AirPlay, Miracast, WiDi, Chromecast, and DLNA

sskjames commented 7 years ago

Another article about Miracast's strength and weakness. What is Miracast and Why Should I Care?

sskjames commented 7 years ago

Miracast explained: How is it different from Chromecast and AirPlay?

sskjames commented 7 years ago

This page has a list of certified devices that support Miracast. Devices that supports Miracast standard

ghost commented 7 years ago

We did POC for Miracast, Concepts wise its working fine.

ghost commented 7 years ago

Scenario Analysis

Enable presentation mode Given Miracast device is connected And the user is in song view When user taps the presentation mode Then the first verse of the song should be displayed in remote display

Disable presentation mode Given presentation mode is enabled When the user taps presentation mode Then presentation mode should be disabled

Display default screen Given user enabled the presentation mode When no song or verse is selected Then default screen should be displayed in remote display

First verse should be displayed Given user enabled presentation mode When the user views a song
Then the first verse of the song should be displayed in remote display

Selected verse should be displayed in remote display Given the user enabled presentation mode And views a song When the user select a verse Then the selected verse should be displayed in remote display

When user not in song view Given presentation mode is enabled And verse is displayed in remote display When user is not in song view Then previously displayed verse should be displayed in remote display

pixel2user commented 7 years ago

I was to optimistic as I wrote "All Android 4.2+ devices [...] should support Miracast."

Most of my low to mid-range Android devices need to be rooted to support Miracast. But that's ok for me. My Nexus 7 2013 supports it out of the box.

My Moto G 2014 needs some tweaking: https://www.gizdev.com/tutorial-to-enable-the-miracast-cast-screen-on-moto-g/ Go In The “System” / “Build.Prop” Folder And Select Edit Add line "Persist.Debug.Wfd.Enable = 1"

ghost commented 7 years ago

Navigate to next song while presenting song Given user is in present song When swipe to next(left or right) song Then first verse of next song should be displayed in remote display And control action(Next/Previous) should be displayed

pixel2user commented 7 years ago

What you mean by "When swipe to next(left or right) song"? Won't the Lyrics projector see a list of all songs next to the list of lyric parts of the selected song - like in OpenLP?

Can you provide a link to a APK build from workspace source? Than I can see what the interface looks like right now.

sskjames commented 7 years ago

Hi @GermanGospel, WorshipSongs already has a feature called "Favourites" which is much similar to OpenLP "Services" where you can add your selected songs for a meeting. Say you have selected and added 5 songs that you need to sing in a Favourite named "Sunday Service". It's already possible to navigate to the next song in the list using swipe action. We are now merely extending this feature to support remote display. Feel free to take a look at the existing version in Play Store to see how it works. We can also add you to our "beta" channel so that you can test the development snapshots and provide feedback. @swotge, please add @GermanGospel to the "beta" testers list.

sskjames commented 7 years ago

Won't the Lyrics projector see a list of all songs next to the list of lyric parts of the selected song - like in OpenLP?

This feature is not available right now as WorshipSongs was primarily designed for personal use and not for lyrics projection like OpenLP. But we can consider this in future in devices with bigger screens.

ghost commented 7 years ago

@GermanGospel Click this link to became Beta tester of worshipsongs

pixel2user commented 7 years ago

@swotge Thanks for the link! I have been registered as a Beta tester already. I saw that options weeks ago in the Google PlayStore and was added.

But there seems to be no 'development snapshots' of the last changes (Miracast feature) available in the PlayStore?

ghost commented 7 years ago

@GermanGospel , Development is not finished yet. We will publish in beta store very soon.

ghost commented 7 years ago

@GermanGospel, We published v3.x in beta store. You may get update within 2 or 3 hours

pixel2user commented 7 years ago

@swotge, Thanks for all your work! This beta is working great! 🥇

Since I have my Miracast HDMI adapter not with me, I used a Miracast sink app! 👍

  1. Mircast sink/receiver: Nexus 7 (2012), 6.0.1 Pure Android ROM with App "WiFi-Display(miracast) sink" https://play.google.com/store/apps/details?id=jp.ddo.pgnishikawa.wfdsinkemu
  2. Miracast source/sender: Nexus 7 (2013), 6.0.1 Stock ROM, build in Miracast feature
pixel2user commented 7 years ago

Should I write my feedback here or open a new bug report?

Videos of the described behavior: https://www.dropbox.com/sh/7h5v8u290es02fg/AABbgRXj3u2fIW0i1r3fB_gta?dl=0

  1. Startup: If a Miracast sink is connected, the app shows the app logo on the sink screen. I expected, that I have to push a button first.
  2. Send song part to sink: The 'portrait mode' song part list is nice! But why don't send the current song part in 'landscape mode' = mirror mode? For tablets it would be even nicer to have a list of all songs in the favorite list next to a list of the parts of the current songs (as in OpenLP).
  3. Rotation bug: If I rotate the device, the sink screen changed from the logo to mirror mode and fast back to logo.
  4. Preview next song: If I swipe the view to the next song, and go back to the first song, the currently projected song part is not selected. I have to push the 'project button' and than select the right song part. So its a bad idea to swipe to next song, as long as the current one is still going! ;-)

Edit: The 'project button' should only be displayed if a Miracast receiver is connected. Users which do not want to connect a Miracast receiver don't want to see this button on every song listed, I'm sure.

@swotge, Thanks again for all your work! Do you have a Paypal account?

ghost commented 7 years ago

@GermanGospel Thankyou very much for your feedback. No need to create bug report, because it's relevant to this issue.

ghost commented 7 years ago
  1. Startup: If a Miracast sink is connected, the app shows the app logo on the sink screen. I expected, that I have to push a button first.

Audience no need to see anything from app, what lyrics projector is currently doing. That is why we show Logo in remote display

2.Send song part to sink: The 'portrait mode' song part list is nice! But why don't send the current song part in 'landscape mode' = mirror mode? For tablets it would be even nicer to have a list of all songs in the favorite list next to a list of the parts of the current songs (as in OpenLP).

When projector in presentation mode, we will lock the 'landscape mode'. If projector rotate to landscape, local and remote screen should not change anything. Current song part is displayed in remote screen. Is this approach okay?. We will have plan to provide support in tablet(next version) list of all songs in the favourite list next to a list of the parts of the current songs (as in OpenLP).

  1. Rotation bug: If I rotate the device, the sink screen changed from the logo to mirror mode and fast back to logo.

The above approach will solve this bug.

4.Preview next song: If I swipe the view to the next song, and go back to the first song, the currently projected song part is not selected. I have to push the 'project button' and than select the right song part. So its a bad idea to swipe to next song, as long as the current one is still going! ;-)

So you don't need swipe option when project song?.

Edit: The 'project button' should only be displayed if a Miracast receiver is connected. Users which do not want to connect a Miracast receiver don't want to see this button on every song listed, I'm sure.

We will work on this fix.

pixel2user commented 7 years ago

@swotge - You are very fast! 👍

  1. Send song part to sink: The 'portrait mode' song part list is nice! But why don't send the current song part in 'landscape mode' = mirror mode? For tablets it would be even nicer to have a list of all songs in the favorite list next to a list of the parts of the current songs (as in OpenLP).

When projector in presentation mode, we will lock the 'landscape mode'. If projector rotate to landscape, local and remote screen should not change anything. Current song part is displayed in remote screen. Is this approach okay?. We will have plan to provide support in tablet(next version) list of all songs in the favourite list next to a list of the parts of the current songs (as in OpenLP).

  1. Rotation bug: If I rotate the device, the sink screen changed from the logo to mirror mode and fast back to logo.

The above approach will solve this bug.

As as a workaround it is OK to lock the device to 'portrait mode' and not use the 'landscape mode'. If the planed new 'landscape mode' (OpenLP alike) is implemented I would prefer to use that mode on my Tablet.

  1. Preview next song: If I swipe the view to the next song, and go back to the first song, the currently projected song part is not selected. I have to push the 'project button' and than select the right song part. So its a bad idea to swipe to next song, as long as the current one is still going! ;-)

So you don't need swipe option when project song?.

The 'swipe to next song' feature is great, but it is 'broken' for the use case 'get a sneak peek at the next song while the current is still playing'. I want to sneak peek the next song and go back and finish the song without the need to push the 'sent to projector' button again.

pixel2user commented 7 years ago

@swotge - The GooglePlay Beta program is nice, but you surely build a new APK each time you change the code, do you? Would it be possible to provide that APK (via Github or Dropbox)? This way I can always test the latest changes.

ghost commented 7 years ago

Preview next song: If I swipe the view to the next song, and go back to the first song, the currently projected song part is not selected. I have to push the 'project button' and than select the right song part. So its a bad idea to swipe to next song, as long as the current one is still going! ;-)

So you don't need swipe option when project song?.

The 'swipe to next song' feature is great, but it is 'broken' for the use case 'get a sneak peek at the next song while the current is still playing'. I want to sneak peek the next song and go back and finish the song without the need to push the 'sent to projector' button again.

@GermanGospel I will discus with our team and i will back.

@swotge - The GooglePlay Beta program is nice, but you surely build a new APK each time you change the code, do you? Would it be possible to provide that APK (via Github or Dropbox)? This way I can always test the latest changes

Right now our build(Jenkins) machine publish APK to beta store whenever code changes in snapshopt.

pixel2user commented 7 years ago

Right now our build(Jenkins) machine publish APK to beta store whenever code changes in snapshopt. That's great! 👍

Fixed: +The 'present song' button is hidden now if no Miracast display is connected. +The device is locked to 'portrait mode' after the 'present song' button was clicked.

-But...

  1. Rotation bug: If I rotate the device, the sink screen changed from the logo to mirror mode and fast back to logo.

This still occurs when the app is opened, but no song is presented. As a workaround I will simply lock the device to 'portrait mode' before connecting to the Miracast display.

Is it possible to force the device to 'portrait mode' before sending the logo to the Miracast display? It's the only orientation the device can be used to present a song via the app.

pixel2user commented 7 years ago

Bug: The app crashes, if a song is projected and the connection to the external display/projector is disconnected. This happens when: -WIFI connection (Miracast) is closed -HDMI cable (Slimport) is disconnected

pixel2user commented 7 years ago

@swotge - Halleluja! It tried to connect my TV via Slimport HDMI cable and your app does send the lyrics to the screen in Full HD - and faster than via Miracast. My dream has come true. A church service without a desktop PC usage seems to be near! Thank you so much! :1st_place_medal:

Picture of the setup: https://www.dropbox.com/s/w3l28kv6mmfxain/Slimport-HDMI-Cable-Projection-from-Android.jpg?dl=0

pixel2user commented 7 years ago

@swotge - 2 things are missing:

  1. Button to blank the screen (all black without logo) if there are same service parts without lyrics. Should I open a new issue for that?
  2. Color scheme that we use in our church (black background and lyrics in white color) - there is an open issue for this already. #150
ghost commented 7 years ago

Bug: The app crashes, if the a song is projected and the connection to the external display/projector is disconnected. This happens when: -WIFI connection (Miracast) is closed -HDMI cable (Slimport) is disconnected

I will work on this issue. I will close this issue once this bug is fixed

Button to blank the screen (all black without logo) if there are same service parts without lyrics. Should I open a new issue for that?

@GermanGospel can you open new issue for this?.

sskjames commented 7 years ago

Thanks Maddy for the fix. @GermanGospel can you please test this out? As @swotge highlighted before, we'll work on your other requirements in separate issues. We'll go for a release if you find this build stable.

pixel2user commented 7 years ago

@swotge - Your changes broke the present song feature. The 'present song' button is never shown in floatingActionMenu.

ghost commented 7 years ago

@GermanGospel Issue identified in my environment i will work on this.

ghost commented 7 years ago

@GermanGospel We identified issue in code level.

pixel2user commented 7 years ago

@swotge - Did you know, you could simulate a secondary display without the need to connect a real one?

Under Settings|Developer Options|Drawing|Simulate secondary displays we can configure a secondary display. https://blog.stylingandroid.com/multiple-displays-part-2/

pixel2user commented 7 years ago

Flicker bug has been described in 2013:

  1. Activity-Based – Must dismiss() Presentation as part of switching to a new activity → flicker
  2. Briefly shows mirroring before new Presentation appears – Similar flicker if you try switching from one Presentation to another http://www.slideshare.net/commonsguy/secondscreen-support-in-android-42
pixel2user commented 7 years ago

@swotge - The 'present song' button is shown again, and the disconnected and reconnect of the secondary display causes no app crash. Thank you! 👍

sskjames commented 7 years ago

Thanks @GermanGospel for the feedback. @swotge, can we release this and close this issue?

ghost commented 7 years ago

😆 Released v3.155 in play store. 🥂

pixel2user commented 7 years ago

@swotge - Thanks for the new release! Can you add the following or other screenshots to GooglePlay to show the new feature?

https://www.dropbox.com/s/bsmdxnnjj28ls4b/External-Display-Overlay.png?dl=0

https://www.dropbox.com/s/w3l28kv6mmfxain/Slimport-HDMI-Cable-Projection-from-Android.jpg?dl=0

sskjames commented 7 years ago

Hi @GermanGospel, thanks for the screenshots, we've updated the Play Store listing.

pixel2user commented 7 years ago

@swotge - The new release (v3.155) is only shown to beta program user. All others still see v2.142!? https://play.google.com/store/apps/details?id=org.worshipsongs

"New" Features:

  • Added new songs
  • Lyrics only should be displayed in landscape mode
pixel2user commented 7 years ago

@swotge - Will the new README text automatically get added to the PlayStore description?