-
Querbezug auf zugehörige Anmeldungen
-
Diese Anmeldung ist eine Teilfortsetzungsanmeldung der U. S. Patentanmeldung No. 14/292,690, eingereicht am 30. Mai 2014, mit dem Titel ”Sychronization of Independent Output Streams”, welche durch Inbezugnahme einbezogen ist, als wäre sie hier vollständig offenbart. Diese Anmeldung beansprucht ebenso die Priorität unter 35 U. S. C. § 119(e) der provisorischen U. S. Patentanmeldung No. 62/044, 891, eingereicht am 2. September 2014, mit dem Titel ”Synchronisation of Independent Output Streams”, welche hier durch Inbezugnahme einbezogen ist, als wäre sie hier vollständig offenbart.
-
Technisches Gebiet
-
Diese Beschreibung bezieht sich im Allgemeinen auf eine gestreamte Ausgabe, und genauer gesagt auf eine Synchronisation von unabhängigen Ausgabeströmen, welche unterschiedlichen Ausgabetypen entsprechen können, wie beispielsweise Audio und eine haptische Ausgabe.
-
Hintergrund
-
Elektronische Vorrichtungen können Audioströme derart wiedergeben, dass Bauteile, wie beispielsweise Lautsprecher, Stellglieder, usw., angetrieben werden. Typischerweise können solche elektronische Vorrichtungen mehrere Audioströme innerhalb einer bestimmten Zeitperiode wiedergeben. In einigen Fällen kann es beim Wiedergeben dieser mehreren Audioströme notwendig sein, dass sie mit einem weiteren Ausgabetyp synchronisiert werden müssen, wie beispielsweise eine haptische oder visuelle Ausgabe.
-
Beispielsweise kann eine haptische Ausgabevorrichtung sowohl ein Tast- als auch ein Audio-Element (engl.: tactile and an audio component) als Teil einer haptischen Ausgabe umfassen. Die Bauteile, welche die Tast- und Audio-Bauteile ausmachen, können durch Daten angetrieben werden, welche von einer internen Verarbeitungseinheit zugeführt (”gestreamt”) werden. In einem solchen Beispiel geben viele elektronische Vorrichtungen die Tast- und Audio-Ausgaben lediglich derart aus, wie sie von der Verarbeitungseinheit empfangen werden, gemäß einem Zeitstempel in den Datenströmen der Tast- und Audiodaten oder es werden andererseits die zwei Ausgabetypen bei ungefähr der gleichen Zeit angenähert wiedergegeben.
-
Diese Ansätze erzielen jedoch nicht notwendigerweise eine wahre synchronisierte Ausgabe. Beispielsweise kann sich die Latenz zwischen der Verarbeitungseinheit und einem der Wiedergabebauteile von der Latenz zwischen der Verarbeitungseinheit und einem weiteren der Wiedergabebauteile unterscheiden. Ebenso können Daten für einen Typ von Ausgabe vor dem weiteren Datentyp bereitstehen oder übertragen werden. Ferner kann es bei einem der Wiedergabebauteile einfach länger dauern, um seine Daten vorzubereiten und auszugeben.
-
Zusätzlich können einige elektronische Vorrichtungen, welche unabhängige Wiedergabegeräte verwenden, um jeden der mehreren Ausgabeströme wiederzugeben, die Wiedergaben nicht synchronisieren. Eine solche elektronische Vorrichtung kann im Gegenteil unabhängige Wiedergabegeräte dazu anweisen, die verschiedenen mehrfachen Ströme wiederzugeben und einen jeglichen auftretenden Mangel an Synchronisation zu akzeptieren. Weitere elektronische Vorrichtungen können eine Wiedergabe der mehrfachen Ströme zu einem einzelnen, einheitlichen Ablauf zusammenfassen. In einem solchen Fall wird die Wiedergabe der verschiedenartigen mehreren Ströme jedoch nicht unabhängig durchgeführt.
-
In den zuvor genannten Fällen kann eine wahrnehmbare Dissonanz zwischen den verschiedenartigen Ausgabetypen vorliegen. Sie können als nicht mehr synchron erscheinen, wodurch sie ihre Wirkung verlieren und bei einem Benutzer ein unangenehmes Empfinden hervorrufen.
-
Demgemäß können eine verbesserte Einrichtung und ein Verfahren zur Synchronisation einer ausgegebenen Wiedergabe hilfreich sein.
-
Zusammenfassung
-
Die vorliegende Beschreibung offenbart Systeme, Computerprogrammprodukte und Verfahren zum Synchronisieren von unabhängigen Ausgabeströmen, um beispielsweise einen Alarm bereitzustellen, welcher zwei oder mehrere Bauteil-Ausgaben hat. Es können zumindest zwei Ausgabeströme, welche zu synchronisieren sind, unter Verwendung von zumindest zwei unabhängigen Wiedergabegeräten (engl.: renderer) wiedergegeben werden. Die unabhängigen Wiedergabegeräte werden mit einem gemeinsam benutzten Synchronisationsobjekt (engl.: shared synchronization object) bereitgestellt, sobald sie dazu instruiert werden, den jeweiligen Ausgabestrom wiederzugeben; wobei das gemeinsam benutzte Synchronisationsobjekt von einem Synchronisations-Bauteil stammen kann. Es kann eine Zeit, zu welcher alle unabhängigen Wiedergabegeräte einen jeweiligen ersten Puffer des jeweiligen Ausgabestroms (d. h. ”Synchronisationszeit”) wiedergeben können, anhand von dem gemeinsam benutzen Synchronisationsobjekt bestimmt werden. Die Wiedergabe der Ausgabeströme unter Verwendung der unabhängigen Wiedergabegeräte kann zu der bestimmten Zeit beginnen. Auf diese Art und Weise kann die Wiedergabe der Ausgabeströme synchronisiert werden. Eine solche Synchronisation kann sicherstellen, dass ein Benutzer die Ausgaben so wie vorgesehen erfährt. Ferner kann eine solche Synchronisation in bestimmten Ausführungsformen ebenso ermöglichen, dass zumindest ein Bauteil innerhalb einer Energieverbrauch-Beschränkung verbleibt, welche überstiegen worden wäre, falls die Ausgabeströme ohne Synchronisation wiedergegeben werden.
-
Hier beschriebene Ausführungsformen können die Form eines Systems zum Bereitstellen eines Alarms annehmen, welches umfasst: einen Speicher, welcher betriebsfähig ist, eine erste und zweite Mehrzahl von Ausgabe-Wellenformen zu speichern; zumindest eine Verarbeitungseinheit, welche betriebsfähig mit dem Speicher gekoppelt ist; eine erste Ausgabevorrichtung, welche betriebsfähig mit der zumindest einen Verarbeitungseinheit gekoppelt ist; und eine zweite Ausgabevorrichtung, welche betriebsfähig mit der zumindest einen Verarbeitungseinheit gekoppelt ist; wobei die erste Ausgabevorrichtung betriebsfähig ist, eine erste Wellenform von der ersten Mehrzahl von Ausgabe-Wellenformen auszugeben, wobei die erste Ausgabevorrichtung betriebsfähig ist, eine erste Alarm-Modalität bereitzustellen; wobei die zweite Ausgabevorrichtung betriebsfähig ist, eine zweite Wellenform von der zweiten Mehrzahl von Ausgabe-Wellenformen auszugeben, wobei die zweite Ausgabevorrichtung betriebsfähig ist, eine zweite Alarm-Modalität bereitzustellen; wobei die erste und zweite Alarm-Modalität unterschiedlich sind; und wobei die Ausgabe der zweiten Wellenform solange verzögert wird, bis zumindest 85% der ersten Wellenform ausgegeben ist.
-
Eine weitere Ausführungsform kann die Form eines Verfahrens zum Bereitstellen eines Alarms, umfassend mehrere Bauteil-Ausgaben, annehmen, umfassend: Ausgeben einer ersten Bauteil-Ausgabe von einer ersten Ausgabestruktur; Abwarten einer spezifizierten Zeitdauer; Ausgeben einer zweiten Bauteil-Ausgabe von einer zweiten Ausgabestruktur nach der spezifizierten Zeitdauer; wobei das zweite Bauteil gegenüber dem ersten Bauteil von einer unterschiedlichen Modalität ist; und wobei eine Intensität von der ersten Bauteil-Ausgabe reduziert wird, nachdem die Ausgabe von der zweiten Bauteil-Ausgabe begonnen hat.
-
Eine weitere Ausführungsform kann die Form eines Verfahrens zum Bereitstellen eines Alarms annehmen, umfassend: Eintreten in einen Alarm-Zustand; Einleiten eines Alarms in Reaktion auf den Eintritt in den Alarm-Zustand; Erlangen von Bauteil-Ausgaben des Alarms; Bestimmen einer Reihenfolgen von den Bauteil-Ausgaben; Einstellen von einer Zeitverzögerung zwischen dem Einleiten von jeder der Bauteil-Ausgaben; und Ausgeben des Alarms gemäß der Reihenfolge und der Zeitverzögerung; wobei zumindest 85% von einer der Bauteil-Ausgaben vor der Ausgabe einer zweiten der Bauteil-Ausgaben vollendet ist.
-
Eine weitere Ausführungsform kann die Form eines Systems zum Bereitstellen eines Alarms annehmen, umfassend: einen Speicher, welcher betriebsfähig ist, eine erste und zweite Mehrzahl von Ausgabe-Wellenformen zu speichern; zumindest eine Verarbeitungseinheit, welche betriebsfähig mit dem Speicher gekoppelt ist; eine erste Ausgabevorrichtung, welche betriebsfähig mit der zumindest einen Verarbeitungseinheit gekoppelt ist; eine zweite Ausgabevorrichtung, welche betriebsfähig mit der zumindest einen Verarbeitungseinheit gekoppelt ist; wobei die erste Ausgabevorrichtung betriebsfähig ist, eine erste Wellenform von der ersten Mehrzahl von Ausgabe-Wellenformen auszugeben, wobei die erste Ausgabevorrichtung betriebsfähig ist, eine erste Alarm-Modalität bereitzustellen; wobei die zweite Ausgabevorrichtung betriebsfähig ist, eine zweite Wellenform von der zweiten Mehrzahl von Ausgabe-Wellenformen auszugeben, wobei die zweite Ausgabevorrichtung betriebsfähig ist, eine zweite Alarm-Modalität bereitzustellen; wobei die erste und zweite Alarm-Modalität unterschiedlich sind; und wobei die Ausgabe der zweiten Wellenform gegenüber der Ausgabe von der ersten Wellenform um eine Zeitdauer verzögert wird, welche ausreicht, um einen Energieverbrauch zum Ausgeben der ersten und zweiten Wellenform zu jedem Zeitpunkt während der Ausgabe unterhalb oder gleich ein Watt zu halten.
-
Es ist zu verstehen, dass sowohl die vorhergehende allgemeine Beschreibung als auch die folgende detaillierte Beschreibung als ein Beispiel und zur Erläuterung dienen und nicht notwendigerweise die vorliegende Offenbarung einschränken. Die anliegende Zeichnung, welche einbezogen ist und einen Teil der Beschreibung bildet, stellt einen Gegenstand der Offenbarung dar. Die Beschreibung als auch die Zeichnung dienen zusammen zur Erläuterung der Prinzipien von der Offenbarung.
-
Kurze Beschreibung der Zeichnung
-
1 zeigt ein Blockdiagramm, in welchem ein beispielhaftes System zum Synchronisieren unabhängiger Ausgabeströme dargestellt ist.
-
2 zeigt ein Blockdiagramm, in welchem die Funktion der beispielhaften Softwareelemente, welche durch das System von 1 ausgeführt werden können, dargestellt ist.
-
3 zeigt ein Schaubild, in welchem ein Beispiel des Betriebes von zwei unabhängigen Wiedergabegeräten, für welche eine Synchronisationszeit bestimmt wird, dargestellt ist.
-
4A zeigt einen Kurvenverlauf, in welchem eine beispielhafte Synchronisation von zwei Ausgaben für einen einzelnen Alarm dargestellt ist.
-
4B zeigt einen Kurvenverlauf, in welchem eine beispielhafte Synchronisation von zwei Ausgaben für einen einzelnen Alarm in Bezug auf einen Gesamtenergieverbrauch dargestellt ist.
-
4C zeigt ein Ablaufdiagramm, in welchem ein beispielhaftes Verfahren zum Bestimmten eines Versatzes zwischen mehreren Ausgaben von einem einzelnen Alarm dargestellt ist.
-
4D zeigt einen Kurvenverlauf, in welchem eine Intensitäts-Einstellung von einer Bauteil-Ausgabe, um einen Energieverbrauch von einer weiteren Bauteil-Ausgabe auszumachen, dargestellt ist.
-
5A–5D zeigen Schaubilder, welche ein beispielhaftes Synchronisationsobjekt für zwei Ausgabeströme im Verlaufe einer Synchronisation darstellen.
-
6 zeigt ein Ablaufdiagramm, welches ein beispielhaftes Verfahren zum Synchronisieren unabhängiger Ausgabeströme darstellt. Das Verfahren kann durch das System von 1 durchgeführt werden.
-
Genaue Beschreibung
-
Die folgende Beschreibung umfasst beispielhafte Systeme, Verfahren und Computerprogrammprodukte, welche verschiedene Elemente der vorliegenden Offenbarung ausführen. Es sollte jedoch verständlich sein, dass die beschriebene Offenbarung in einer Vielzahl von Formen, zusätzlich zu jenen wie hier beschrieben, in die Praxis umgesetzt werden kann.
-
Die vorliegende Offenbarung beschreibt Systeme, Computerprogrammprodukte und Verfahren zum Synchronisieren von unabhängigen Ausgabeströmen, um beispielsweise einen Alarm bereitzustellen, welcher zwei oder mehrere Bauteil-Ausgaben hat. Es können zumindest zwei Ausgabeströme, welche zu synchronisieren sind, unter Verwendung von zumindest zwei unabhängigen Wiedergabegeräten wiedergegeben werden. Den unabhängigen Wiedergabegeräten werden ein gemeinsam benutztes Synchronisationsobjekt bereitgestellt, sobald sie dazu angewiesen sind, den jeweiligen Ausgabestrom wiederzugeben; wobei das gemeinsam benutzte Synchronisationsobjekt von einem Synchronisations-Bauteil stammen kann. Es kann eine Zeit, zu welcher alle unabhängigen Wiedergabegeräte einen jeweiligen ersten Puffer des jeweiligen Ausgabestroms (das heißt ”Synchronisationszeit”) wiedergeben können, anhand des gemeinsam benutzten Synchronisationsobjekts bestimmt werden. Die Wiedergabe der Ausgabeströme unter Verwendung der unabhängigen Wiedergabegeräte kann zu der bestimmten Zeit beginnen. Auf diese Art und Weise kann die Wiedergabe der Ausgabeströme synchronisiert werden. Eine solche Synchronisation kann sicherstellen, dass ein Benutzer die Ausgaben so wie vorgesehen erfährt. Ferner kann eine solche Synchronisation in bestimmten Ausführungsformen ebenso ermöglichen, dass zumindest ein Bauteil innerhalb von einer Energieverbrauch-Beschränkung verbleibt, welche überstiegen worden wäre, falls die Ausgabeströme ohne Synchronisation wiedergegeben werden.
-
Bei einigen Implementierungen können die Ausgabeströme dazu genutzt werden, um unterschiedliche Bauteile anzutreiben, wie beispielsweise ein Lautsprecher und ein Stellglied, welches eine haptische Ausgabe bereitstellt, um einem Benutzer den Alarm bereitzustellen. Beispielsweise kann ein System eine haptische Ausgabe, welche einen Klang umfasst, welcher durch einen Lautsprecher erzeugt wird, welcher durch einen ersten wiedergegebenen Audiostrom angetrieben wird, und eine haptische Ausgabe bereitstellen, welche durch ein Stellglied erzeugt wird, welches durch einen zweiten wiedergegebenen haptischen Datenstrom angetrieben wird. Durch die Synchronisation der zwei unterschiedlichen Ausgabeströme kann sichergestellt werden, dass die Audio- und Haptik-Ausgabe zu der gleichen Zeit durch den Benutzer erfahren werden. Ferner können Ausgabeströme derart entworfen werden, dass sie den Lautsprecher und das Stellglied zu einer vorgegebenen Zeit ohne verfügbare Energie nutzen. Die Synchronisation kann sicherstellen, dass der Lautsprecher und das Stellglied zur vorgegebenen Zeit nicht gemeinsam eine ungeplante, übermäßige Energiemenge nutzen, wodurch sie innerhalb einer Beschränkung einer verfügbaren Energie verbleiben.
-
Bestimmte Ausführungsformen können umfassen, dass die zwei Kanäle von einem Stereo-Audio-Datenstrom Ausgabeströme für sowohl das erste als auch das zweite Ausgabe-Wiedergabegerät oder für weitere Vorrichtungen bereitstellen. Beispielsweise kann ein erster Kanal von dem Stereo-Audio-Kanal dazu verwendet werden, um Daten entsprechend einer gewünschten Audio-Ausgabe zu übertragen. Der zweite Stereo-Kanal kann dazu verwendet werden, um Daten entsprechend einer gewünschten haptischen Ausgabe von einem Stellglied zu übertragen. Dies kann insbesondere nützlich sein, wenn Mono-Audio von einem Lautsprecher oder einem Satz von Lautsprechern gewünscht ist, insofern als der ansonsten ungenutzte (oder doppelte) Audio-Kanal dazu verwendet werden kann, um Daten für einen zweiten Ausgabetyp zu übertragen. Als ein weiteres Beispiel können auf diesem zweiten Stereo-Kanal grafische Daten übertragen werden. Es kann ein einzelner Alarm aus mehreren Ausgabeströmen gebildet werden, wobei jeder hiervon einer Bauteil-Ausgabe von einer unterschiedlichen Modalität entspricht (beispielsweise visuell, akustisch, haptisch, usw.).
-
Das zuvor genannte gemeinsam benutzte Synchronisationsobjekt kann eine oder mehrere Datenstrukturen annehmen, wie beispielsweise ein Feld. Das gemeinsam benutzte Synchronisationsobjekt kann Daten, welche die unabhängigen Wiedergabegeräte identifizieren, eine Statuszeit für jedes unabhängige Wiedergabegerät, eine Anzahl von Rahmen, welche zur Wiedergabe für jedes unabhängige Wiedergabegerät angefragt werden, einen Status für jedes unabhängige Wiedergabegerät und/oder eine jegliche weitere derartige Information, welche sich auf die unabhängigen Wiedergabegeräte und/oder die Wiedergabe der Ausgabeströme bezieht, umfassen.
-
In einigen Fällen kann eine Information in dem gemeinsam benutzten Synchronisationsobjekt analysiert werden, um die Synchronisationszeit zu bestimmen, indem eine nächste Eingabe-/Ausgabe-Zykluszeit von einem jeglichen Wiedergabegerät ermittelt wird, nachdem alle Wiedergabegeräte zur Wiedergabe bereit sind. Auf diese Art und Weise können alle der unabhängigen Wiedergabegeräte dazu angewiesen werden, bei einer Synchronisationszeit mit der Wiedergabe zu beginnen, wenn alle unabhängigen Wiedergabegeräte zur Wiedergabe in der Lage sind.
-
Bei einigen Implementierungen können die unabhängigen Wiedergabegeräte den gleichen Codec verwenden, welcher ein Programm oder eine Hardware ist, welches bzw. welche dazu in der Lage ist, einen digitalen Datenstrom zu kodieren oder zu dekodieren, und zwar unter der Leitung von einer oder mehreren Verarbeitungseinheiten. In einigen Fällen solcher Implementierungen, welche eine Ausgabe von dualer Art erzeugen, einschließlich eines Klangs, welcher durch einen Lautsprecher erzeugt wird, welcher durch einen ersten wiedergegebenen Audiostrom angetrieben wird, und einer Haptik-Ausgabe, welche durch ein Stellglied erzeugt wird, welches durch einen zweiten wiedergegebenen Haptik-Ausgabestrom angetrieben wird, kann eine Verarbeitungseinheit den Audio- und Haptik-Strom über einen Stereo-Audiokanal übertragen. Ähnlich kann die Verarbeitungseinheit durch Mono-Audiokanäle mit sowohl dem Lautsprecher als auch dem Stellglied verbunden werden, wobei die Kanäle von der Stereo-Audioverbindung von der Verarbeitungseinheit aufgeteilt werden.
-
Bei einer oder mehreren Implementierungen können Wellenformen für einen oder mehrere der Ausgabeströme von einem oder mehreren nicht-flüchtigen Speichermedien (wie beispielsweise im Falle von Systemklängen, welche vorab synthetisiert wurden und zur häufigen Nutzung gespeichert sind, welche durch Verweis auf eine Nachschlagetabelle und/oder eine weitere Datenstruktur zugreifbar sind) erlangt werden, und/oder zum Zeitpunkt der Wiedergabe synthetisiert werden. Bei verschiedenartigen Implementierungen können die Ausgabeströme unterschiedliche Abtastrahmenraten, Abtastraten, Zeitdauern und/oder eine weitere Wiedergabe und/oder weitere Eigenschaften haben. Bei verschiedenartigen weiteren Implementierungen kann bzw. können jedoch ein oder mehrere Ausgabeströme eine oder mehrere Eigenschaften miteinander gemeinsam haben.
-
1 zeigt ein Blockdiagramm, welches ein beispielhaftes System 100 zum Synchronisieren von unabhängigen Ausgabeströmen darstellt. Das System kann eine elektronische Vorrichtung 101 enthalten, welche eine jegliche Art einer elektronischen Vorrichtung annehmen kann, wie beispielsweise ein Laptop-Computer, ein Desktop-Computer, eine tragbare Vorrichtung, eine Arbeitszeiterfassungsvorrichtung, eine Gesundheitsüberwachungsvorrichtung, ein digitales Medien-Abspielgerät, ein mobiler Computer, ein zellulares Telefon, ein Smartphone und/oder eine jegliche weitere elektronische Vorrichtung, welche Ausgabeströme wiedergibt.
-
Die elektronische Vorrichtung 101 kann eine oder mehrere Verarbeitungseinheiten 102, einen oder mehrere Codecs (beispielsweise Digital-zu-Audio-Umwandler) 104 (für den Fall, dass der Codec als eine einzelne Vorrichtung oder Schaltung implementiert ist, anstelle dass er ein Programm ist, welches durch die Verarbeitungseinheit ausgeführt wird), eine oder mehrere erste Eingabe-/Ausgabevorrichtungen 105 (wie beispielsweise ein oder mehrere Lautsprecher und/oder weitere Audio-Ausgabevorrichtungen), eine oder mehrere zweite Eingabe-/Ausgabevorrichtungen 106 (wie beispielsweise ein oder mehrere Stellglieder und/oder weitere Tast-Ausgabevorrichtungen), und ein oder mehrere nicht-flüchtige Speichermedien 109 (welche die Form eines Magnetspeichermediums, optischen Speichermediums, magneto-optischen Speichermediums; Festwertspeichers, Arbeitsspeichers, löschbaren, programmierbaren Speichers, Flashspeichers, usw., annehmen können, jedoch nicht hierauf eingeschränkt sind) umfassen.
-
Wie dargestellt, kann die Verarbeitungseinheit 102 in einigen Fällen über einen Stereo-Audiokanal 103 mit dem Codec 104 verbunden sein oder kann direkt mit den Ausgabevorrichtungen 105, 106 verbunden sein. Ähnlich kann der Codec über einen ersten Mono-Audiokanal 107 mit der ersten Eingabe-/Ausgabevorrichtung 105 verbunden sein und über einen zweiten Mono-Audiokanal 108 mit der zweiten Eingabe-/Ausgabevorrichtung 106 verbunden sein, wobei die Kanäle von dem Stereokanal zum Prozessor aufgeteilt sind. Es ist jedoch verständlich, dass dies ein Beispiel ist, und dass bei verschiedenartigen Implementierungen eine jegliche Anzahl von Verbindungen, welche eine jegliche Anzahl von Kanälen zwischen einer jeglichen Anzahl von Prozessoren, Codecs und Eingabe-/Ausgabevorrichtungen haben, möglich sind, ohne vom Umfang der vorliegenden Offenbarung abzuweichen. Es sollte ferner anerkannt werden, dass eine oder beide der Eingabe-/Ausgabevorrichtungen 105, 106 in bestimmten Ausführungsformen keine Eingabe-Funktionalität haben kann und lediglich Ausgabevorrichtungen sind, wie beispielsweise ein Lautsprecher, ein haptisches Stellglied, und dergleichen.
-
Die Verarbeitungseinheit 102 kann Anweisungen ausführen, welche im nicht-flüchtigen Speichermedium 109 gespeichert sind, welche bei der Verarbeitungseinheit bewirken, zu bestimmen, dass zumindest zwei Ausgabeströme, welche zu synchronisieren sind, wiedergegeben werden.
-
Beispielsweise kann die Verarbeitungseinheit 102 eine Benutzer-Eingabe empfangen, und kann die Verarbeitungseinheit bestimmen, dass auf die Benutzereingabe eine haptische Antwort bereitgestellt wird. Als ein weiteres Beispiel kann die elektronische Vorrichtung 101 in einen Alarmzustand eintreten und einem Benutzer somit einen Alarm bereitstellen. Die erste Eingabe-/Ausgabevorrichtung 105 kann in diesem Beispiel ein Lautsprecher sein, und die zweite Eingabe-/Ausgabevorrichtung 106 kann in diesem Beispiel ein Stellglied sein. Die Verarbeitungseinheit kann bestimmen, dass auf die Benutzereingabe eine haptische Antwort bereitgestellt wird, indem sowohl der Lautsprecher als auch das Stellglied jeweils unter Verwendung von zwei separaten und unabhängigen Ausgabeströmen angetrieben werden. Damit die klangliche und haptische Ausgabe als Teil von der gleichen gesamten Antwort durch den Benutzer wahrgenommen wird, kann es notwendig sein, dass die Ausgabeströme zu synchronisieren sind. Ferner können die Ausgabeströme, welche den Lautsprecher und das Stellglied antreiben, derart entworfen sein, dass sie zu einer bestimmten Zeit von der elektronischen Vorrichtung 101 innerhalb von einer Energiebeschränkung verbleiben. Wenn die Ausgabeströme, welche den Lautsprecher und das Stellglied antreiben, nicht synchronisiert sind, kann die Energie, welche verbraucht wird, wenn der Lautsprecher und das Stellglied angetrieben werden, höher sein als durch die Entwickler erwartet, und kann zu einem vorgegebenen Zeitpunkt eine verfügbare Energie übersteigen. Somit kann es durch Synchronisation der Ausgabeströme ermöglicht werden, dass die elektronische Vorrichtung innerhalb von Energieeinschränkungen verbleibt.
-
Die Verarbeitungseinheit 102 kann den Codec 104 dazu verwenden, um die Ausgabeströme wiederzugeben (beispielsweise um die Ströme zu kodieren) oder dies kann durch ein separates Synchronisationsbauteil vorgenommen werden. Dies kann insbesondere dann nützlich sein, wenn beispielsweise die Ausgabeströme ein linker und rechter Kanal von einem Stereo-Audiokanal sind. Jeder der Ausgabeströme wird im Allgemeinen an eine separate Ausgabevorrichtung 105, 106 übertragen, sogar dann, wenn beide als linker und rechter Audiokanal von den Stereodaten realisiert sind.
-
Obwohl bei einigen Implementierungen die Verarbeitungseinheit ein einzelnes Hardwarebauteil dazu anweisen kann, die Ausgabeströme wiederzugeben, können separate, unabhängige Wiedergabegeräte in Software ausgeführt werden, um jeden der Ausgabeströme zu kodieren. In einigen Fällen können die separaten, unabhängigen Wiedergabegeräte alle durch den gleichen Codec oder eine weitere Hardware ausgeführt werden. Ebenso kann der Codec in einigen Ausführungsformen ein Programm sein, welches durch die Verarbeitungseinheit 102 anstelle von einer separaten Hardware ausgeführt wird. Ferner kann das Wiedergabegerät oder können die Wiedergabegeräte in einigen Ausführungsformen einen oder mehrere Codecs verwenden, oder können Daten an einen oder mehrere Codecs ausgeben, und zwar zur Kodierung oder Dekodierung.
-
Die unabhängigen Wiedergabegeräte können mit einem gemeinsam benutzten Synchronisationsobjekt bereitgestellt werden, wenn sie dazu angewiesen werden (wie beispielsweise durch die Verarbeitungseinheit 102) den jeweiligen Ausgabestrom wiederzugeben. Eine Zeit (das heißt eine Synchronisationszeit), bei welcher alle der unabhängigen Wiedergabegeräte einen jeweiligen ersten Puffer von dem jeweiligen Ausgabestrom wiedergeben können, kann anhand des Synchronisationsobjekts bestimmt werden. Jedes der unabhängigen Wiedergabegeräte kann damit beginnen, den jeweiligen Ausgabestrom zu der bestimmten Zeit wiederzugeben, wodurch die Wiedergabe der Ausgabeströme synchronisiert wird.
-
In verschiedenen Fällen können die Ausgabeströme unterschiedliche Abtastrahmenraten, Abtastraten, Zeitdauern und/oder jegliche weitere Eigenschaften haben (oder nicht haben). Die unabhängigen Wiedergabegeräte können versuchen, die Wiedergabe zu verschiedenen Zeitpunkten zu beginnen. Die Verwendung des gemeinsam benutzten Synchronisationsobjekts kann jedoch die Synchronisation trotz dieser Faktoren ermöglichen.
-
Bei einigen Implementierungen kann das gemeinsam benutzte Synchronisationsobjekt eine oder mehrere Datenstrukturen annehmen, wie beispielsweise ein Feld, eine Tabelle, eine Liste und/oder eine weitere Datenstruktur. Das gemeinsam benutzte Synchronisationsobjekt kann Daten umfassen, welche alle der unabhängigen Wiedergabegeräte, einen Status von jedem der unabhängigen Wiedergabegeräte (wie beispielsweise ein ”Bereit” Status, ein ”Abwarten” Status, ein ”Gelöscht” Status und/oder weitere derartige Statuten), eine Statuszeit für jedes unabhängige Wiedergabegerät, eine Anzahl von Rahmen, welche zur Wiedergabe für jedes unabhängige Wiedergabegerät angefragt werden, und/oder eine weitere Information in Bezug auf die unabhängigen Wiedergabegeräte identifizieren.
-
Das gemeinsam benutzte Synchronisationsobjekt kann analysiert werden, um die Synchronisationszeit zu bestimmen, indem eine nächste Eingabe/Ausgabe-Zykluszeit von einem jeglichen Wiedergabegerät festgelegt wird, nachdem alle Wiedergabegeräte zur Wiedergabe bereit sind. Auf diese Art und Weise kann die Synchronisationszeit als eine Zeit eingestellt werden, bei welcher alle der unabhängigen Wiedergabegeräte zur Wiedergabe bereit sein werden. Die unabhängigen Wiedergabegeräte können dazu angewiesen werden, eine Wiedergabe zu dieser bestimmten Synchronisationszeit zu beginnen.
-
In einigen Fällen können Wellenformen für einen oder mehrere der Ausgabeströme aus dem nicht-flüchtigen Speichermedium 109 zur Wiedergabe abgerufen werden. Beispielsweise können häufig genutzte Klänge, wie beispielsweise ”Systemklänge”, vorsynthetisiert und gespeichert werden, wobei sie durch Referenznahme auf eine Nachschlagetabelle und/oder eine weitere Datenstruktur für eine bestimmte Referenznummer im Zusammenhang mit einem bestimmten Systemklang zugreifbar sind, wobei sie sogleich nach der Bestimmung zur Wiedergabe abrufbar sind. In weiteren Fällen können Wellenformen für einen oder mehrere der Ausgabeströme zum Zeitpunkt der Wiedergabe synthetisiert werden. Unabhängig davon, können die in der vorliegenden Beschreibung beschriebenen Synchronisationstechniken unbeeinflusst bleiben, und zwar unabhängig davon, ob die Ausgabeströme gespeichert und abgerufen werden und/oder zum Zeitpunkt der Wiedergabe synthetisiert werden.
-
2 zeigt ein Blockdiagramm, in welchem die Funktionsweise 200 von beispielhaften Softwareelementen, welche durch das System von 1 ausgeführt werden können, dargestellt ist. Wie dargestellt, kann eine Applikationsprogramm-Schnittstelle 202 (welche durch die Verarbeitungseinheit 102 von der elektronischen Vorrichtung 101 von 1 ausgeführt werden kann) eine Anfrage 201 zur Synchronisierung der wiedergegebenen mehrfachen Ausgabeströme empfangen. Die Applikationsprogramm-Schnittstelle kann separate Software-Wiedergabegeräte 205–206 dazu anweisen, dass jedes einen der mehrfachen Ausgabeströme wiedergibt. Als ein Teil einer solchen Anweisung kann die Applikationsprogramm-Schnittstelle den unabhängigen Wiedergabegeräten ebenso ein gemeinsam benutztes Synchronisationsobjekt zuführen. Es kann eine Synchronisationszeit, zu welcher die unabhängigen Wiedergabegeräte alle ihre jeweiligen Ausgabeströme wiedergeben können, bestimmt werden, und die unabhängigen Wiedergabegeräte können damit beginnen, ihre jeweiligen Ausgabeströme (wobei die jeweils wiedergegebenen Ströme dazu bereitgestellt werden, um eine erste Eingabe-/Ausgabevorrichtung 207 und eine zweite Eingabe-/Ausgabevorrichtung 208 anzutreiben) zu diesem bestimmten Zeitpunkt wiederzugeben.
-
In diesem Beispiel können die mehrfachen Ausgabeströme zwei Ausgabeströme ausmachen, welche zu synchronisieren sind. Wie dargestellt, umfasst 2 ein erstes Wiedergabegerät 205, welches dazu angewiesen wird, einen ersten Audiostrom 203 entsprechend einer Audio-Ausgabe wiederzugeben, und ein zweites Wiedergabegerät 206, welches dazu angewiesen wird, einen zweiten haptischen Ausgabestrom 204 entsprechend einer haptischen Ausgabe wiederzugeben. Es wird jedoch verständlich sein, dass dies ein Beispiel ist, und dass eine jegliche Anzahl von Ausgabeströmen, welche durch eine jegliche Anzahl von unabhängigen Wiedergabegeräten wiedergegeben werden, synchronisiert werden können.
-
3 zeigt ein Schaubild, in welchem ein Beispiel von dem Betrieb 300 von zwei unabhängigen Wiedergabegeräten 301 und 302 dargestellt ist, für welche eine Ausführungsform eine Synchronisationszeit 303 bestimmen kann. In diesem Beispiel kann das erste unabhängige Wiedergabegerät ein Lautsprecher-Wiedergabegerät sein, welches einen Lautsprecher antreibt, und kann das zweite unabhängige Wiedergabegerät ein haptisches Wiedergabegerät sein, welches ein Stellglied antreibt. Es ist jedoch zu verstehen, dass dies ein Beispiel ist, und dass eine jegliche Anzahl von verschiedenen Arten unabhängiger Wiedergabegeräte verwendet werden können, ohne vom Umfang der vorliegenden Beschreibung abzuweichen.
-
Wie dargestellt, versucht das Lautsprecher-Wiedergabegerät 301 zu einer Zeit 100 mit der Wiedergabe zu beginnen und hat eine Puffergröße von 100 Abtastrahmen. Somit könnte das Lautsprecher-Wiedergabegerät mit der Wiedergabe des ersten Puffers von 100 Abtastrahmen zwischen der Zeit 100 und einer Zeit 200, und eines zweiten Puffers von 100 Abtastrahmen zwischen der Zeit 200 und einer Zeit 300 beginnen. Wie ebenso dargestellt, kann das haptische Wiedergabegerät 302 den Versuch unternehmen, mit einer Wiedergabe zu einer Zeit 125 zu beginnen und hat eine Puffergröße von 50 Abtastrahmen. Somit könnte das haptische Wiedergabegerät mit einer Wiedergabe des ersten Puffers von 50 Abtastrahmen zwischen der Zeit 125 und einer Zeit 175, und eines zweiten Puffers von 50 Abtastrahmen zwischen der Zeit 175 und einer Zeit 125, und eines dritten Puffers von 50 Abtastrahmen zwischen der Zeit 225 und einer Zeit 275 beginnen.
-
Das haptische Wiedergabegerät 302 ist jedoch, wie dargestellt, nicht bereit, seinen ersten Puffer von 50 Abtastrahmen zur Zeit 100 wiederzugeben, wenn das Lautsprecher-Wiedergabegerät 301 dazu bereit ist, seinen ersten Puffer von 100 Abtastrahmen wiederzugeben. Die Synchronisationszeit 300 kann daher gleich der Zeit 200 eingestellt werden, entsprechend dem nächsten Eingabe/Ausgabe-Zyklus von dem Lautsprecher-Wiedergabegerät, da dies die nächste Zeit ist, bei welcher das Lautsprecher-Wiedergabegerät überprüfen und bestimmen wird, ob das haptische Wiedergabegerät dazu bereit ist, seinen ersten Puffer von 50 Abtastrahmen wiederzugeben. Somit kann das Lautsprecher-Wiedergabegerät damit beginnen, seinen ersten Puffer von 100 Abtastrahmen zur Synchronisationszeit 300 (die Zeit 200) wiederzugeben, und kann das haptische Wiedergabegerät ebenso damit beginnen, seinen ersten Puffer von 50 Abtastrahmen zur Synchronisationszeit 300 wiederzugeben.
-
Obwohl in 3 die Synchronisationszeit 300 als der nächste Eingabe/Ausgabe-Zyklus von dem Lautsprecher-Wiedergabegerät 301 eingestellt wird, nachdem beide Wiedergabegeräte 301 und 302 dazu bereit sind, ihren jeweiligen ersten Puffer von Abtastrahmen wiederzugeben, da der Eingabe/Ausgabe-Zyklus von dem Lautsprecher-Wiedergabegerät länger ist, ist zu verstehen, dass dies ein Beispiel ist, und dass weitere Konfigurationen möglich sind. Beispielsweise sind beide Wiedergabegeräte dazu in der Lage, ihren jeweiligen ersten Puffer von Abtastrahmen zur Zeit 175 wiederzugeben, und kann in einigen Implementierungen eine derartige Zeit, zu welcher alle unabhängigen Wiedergabegeräte dazu in der Lage sind, ihren jeweiligen ersten Pufferrahmen wiederzugeben, als die Synchronisationszeit (das heißt in diesem Beispiel die Zeit 175) ausgewählt werden.
-
In bestimmten Ausführungsformen kann einem oder beiden der Ausgabeströme eine Zwischenkanal-Zeitverzögerung vor der Wiedergabe als wahrnehmbare Ausgabe hinzugefügt werden. Als ein Beispiel kann die Verzögerung dem Beginn von einem der Puffer oder einem der Rahmen hinzugefügt werden, und typischerweise dem Beginn von dem Puffer oder Rahmen. Dem nicht einschränkenden Beispiel folgend, kann der zweite Ausgabestrom verzögert werden, bis ungefähr 85% des ersten Ausgabestroms abgespielt worden sind (oder eine entsprechende Ausgabe abgespielt wurde). Die Verzögerung kann in bestimmten Ausführungsformen hinzugefügt werden, um einer Zeitverzögerung zwischen der Wahrnehmung einer ersten Modalität von Ausgabe und einer zweiten Modalität von Ausgabe durch einen Benutzer Rechnung zu tragen. Aus dieser Verzögerung kann resultieren, dass die erste und zweite Modalität von Ausgabe zur gleichen Zeit durch den Benutzer wahrgenommen werden, und zwar obwohl eine leicht verzögert ist. Es sollte anerkannt werden, dass der erste und zweite Ausgabetyp immer noch synchronisiert sind, und dass die Rahmen/Puffer im Wesentlichen gleichzeitig wiedergegeben werden können, wie hier beschrieben; wobei der anfängliche Abschnitt von einem Puffer/Rahmen einer Null-Ausgabe durch den Betrieb der hinzugefügten Zeitverzögerung gleichen kann.
-
Als ein nicht einschränkendes Beispiel wird eine elektronische Vorrichtung in Betracht gezogen, welche bestimmte hier beschriebene Ausführungsformen verwendet, um eine Audio-Ausgabe und eine haptische Ausgabe bereitzustellen, wobei Daten für beide Ausgabetypen kodiert werden und durch eine Verarbeitungseinheit auf einem ersten und zweiten Kanal einer internen Stereo-Audio-Verbindung an die jeweiligen Ausgabevorrichtungen übertragen werden. Wenn die elektronische Vorrichtung typischerweise durch einen Benutzer getragen oder gehalten wird und die zwei Ausgaben gleichzeitig bereitgestellt werden (beispielsweise untereinander synchronisiert und ohne eine jegliche Zeitverzögerung), kann der Benutzer die Audio-Ausgabe hören, bevor er die haptische Ausgabe fühlt, da auditive Impulse schneller an das Gehirn des Benutzers übertragen werden als haptische Impulse. Somit, obwohl die zwei Ausgaben synchronisiert sind und gleichzeitig wiedergegeben werden, werden sie durch die wahrgenommene Verzögerung durch den Benutzer derart aufgenommen, dass sie asynchron auftreten. Dieses Beispiel fortführend, kann die Audio-Ausgabe mit Bezug auf die haptische Ausgabe verzögert werden, so dass beide wahrnehmbar gleichzeitig oder nahezu gleichzeitig auftreten.
-
Bei bestimmten Ausführungsformen kann bzw. können eine Bedeutung (engl.: salience) des Alarms und/oder ein Energieverbrauch durch den Alarm zwei Faktoren annehmen, welche den Zeitpunkt von einer jeglichen Verzögerung zwischen den Ausgaben beeinflussen. Zunächst wird die Bedeutung diskutiert.
-
Unter Bedeutung zählt die Fähigkeit, dass der Alarm (oder seine Bauteil-Ausgaben) in Relation zu weiteren Phänomenen wahrgenommen wird. Im Allgemeinen gilt, dass, wenn die Bauteil-Ausgaben des Alarms wahrnehmbar synchron erscheinen, die Bedeutung des Alarms zunimmt, welches dabei unterstützten kann, die Aufmerksamkeit eines Benutzers zu erregen. Es sollte anerkannt werden, dass die wahrnehmbare Synchronisation wichtiger sein kann als die tatsächliche Zeitsynchronisation der Bauteil-Ausgaben, insofern die Wahrnehmung des Benutzers der Maßstab von der Bedeutung ist; wobei der Alarm durch die wahrnehmbare Synchronisation ausgeprägter wird.
-
Im Allgemeinen und aufgrund der zuvor dargelegten Gründe, kann ein Anheben oder ein Maximieren der Bedeutung eines Alarms bedeuten, dass die Einleitung von einer der Ausgaben mit Bezug auf die weitere hiervon temporär verzögert wird, wie in 4A gezeigt. Es wird beispielsweise ein Alarm 400 mit einer haptischen Ausgabe 405 und einer Audio-Ausgabe 410 in Betracht gezogen. Die Audio-Ausgabe kann gegenüber der haptischen Ausgabe leicht verzögert sein, damit sie der Benutzer als synchron wahrnimmt, und zwar aufgrund der niedrigeren Übertragungsgeschwindigkeit von Nervenimpulsen, verglichen mit der Schallgeschwindigkeit der Luft (wie zuvor beschrieben). Obwohl die exakte Verzögerung zwischen Ausführungsformen, zwischen Alarmen, zwischen unterschiedlichen Bauteilen, welche hinsichtlich der Alarme genutzt werden, und zwischen Vorrichtungen variieren kann, kann die Verzögerung 417 in bestimmten Ausführungsformen zwischen dem Einleiten der Audio-Ausgabe und der haptischen Ausgabe ungefähr 10 bis 35 Millisekunden betragen, und kann die Verzögerung in bestimmten Ausführungsformen 15 bis 25 Millisekunden betragen. Die Verarbeitungseinheit und/oder das Synchronisations-Bauteil kann bzw. können den Wiedergabegeräten Anweisungen in Bezug auf die Synchronisation der Ausgaben und einer jeglichen Verzögerung bei einer oder bei beiden Ausgaben bereitstellen, oder es kann ein oder können beide Wiedergabegeräte eine solche Synchronisation bestimmen.
-
In bestimmten Ausführungsformen kann es hilfreich sein, eine haptische Ausgabe und/oder Audio-Ausgabe auszuwählen, welche sich relativ schnell wiederholt, welche beispielsweise eine relativ kurze Zeitperiode hat. Zeitperioden von 10 bis 30 Millisekunden für Ausgaben können beispielsweise erlauben, dass die beiden wahrnehmbar synchronisiert sind, während sie sequenziell abgespielt werden. Das heißt, dass die haptische Ausgabe in einem Beispiel zuerst abgespielt werden kann, gefolgt durch die Audio-Ausgabe, sobald die Wiedergabe der haptischen Ausgabe abgeschlossen ist oder zumindest 85% der Wiedergabe abgeschlossen ist. Ferner kann es hilfreich sein und die Bedeutung erhöhen, wenn Ausgaben 405, 410 ausgewählt werden, welche die gleichen oder ähnlichen Zeitperioden haben, so dass Spitzenpunkte, Tiefpunkte und weitere durch den Benutzer wahrnehmbare Hinweise bei den Ausgaben wahrnehmbar ausgerichtet sind. Als ein nicht einschränkendes Beispiel kann die Zeitperiode von der bzw. den Ausgaben 405, 410 geringer sein, als die wahrnehmbare Verzögerung 415 zwischen den Ausgaben, obwohl dies nicht erforderlich ist.
-
Ferner, indem Ausgaben mit relativ kurzen Zeitperioden ausgewählt werden, welche somit sequenziell abgespielt werden können, kann eine Spitzenenergie, welche durch eine elektronische Vorrichtung, welche den Alarm ausgibt, verbraucht wird, minimiert werden und/oder unterhalb von einem Schwellwert beibehalten werden. Wie angezeigt, können bestimmte Alarme derart strukturiert sein, dass die Spitze von jeder ausgegebenen Bauteil-Wellenform auf einen Zeitpunkt gelegt wird, welcher unterschiedlich ist zu jenem, zu welchem die Spitze von einer jeglichen weiteren ausgegebenen Bauteil-Wellenform auftritt. Somit kann die Energie zwischen den individuellen Ausgaben des Alarms eingeplant werden, ohne dass notwendiger Weise eine Ausgabe eine maximale Energie übersteigt, welche durch die Vorrichtung bereitgestellt werden kann, wie in 4B gezeigt. Hier sind eine haptische Ausgabe 400 und eine Audio-Ausgabe 405 zusammen mit einem Energieverbrauch 420 für die kombinierte Ausgabe angezeigt. Da die haptische Ausgabe 400 und die Audio-Ausgabe 405 keine gleichzeitigen Spitzen-Amplituden haben, erfordern sie nicht gleichzeitig eine maximale Energie oder übersteigen andererseits einen Energie-Schwellwert. Somit kann die Verzögerung zwischen den Ausgaben 400, 405 den gesamten Alarm-Energieverbrauch innerhalb einer eingeplanten Größe beibehalten. In einigen Ausführungsformen beträgt der Energie-Schwellwert einschließlich zwischen 0,5 und 1,0 Watt.
-
In vielen Ausführungsformen ist der Versatz von einer Ausgabe gegenüber der anderen derart, dass die zweite Ausgabe mit dem Abspielen beginnt, wenn die erste Ausgabe endet (und in einigen Ausführungsformen umgekehrt). Die Zeitperioden der zwei Ausgaben müssen nicht gleich sein, sondern werden im Allgemeinen derart gewählt, dass eine jegliche Differenz in den Zeitperioden nicht ausreichen wird um starke Änderungen in der Synchronisation von dem Abspielen von aufeinanderfolgenden Rahmen von jeder Ausgabe über die Zeitdauer des Alarms hinweg hervorzurufen. Das heißt, dass, obwohl unterschiedliche Zeitperioden für jede der Ausgaben hervorrufen können, dass sich die Startzeiten der Ausgaben in Relation zueinander bei jedem aufeinanderfolgenden Abspielen der Ausgaben ändern, die gesamte Änderung oder Abweichung innerhalb des gewünschten Versatzes verbleiben kann.
-
Ein Beispiel kann dabei unterstützen, dass zuvor Genannte zu verstehen. Es wird ein Alarm in Betracht gezogen, welcher eine haptische Ausgabe mit einer Zeitperiode von 13 Millisekunden und einen Audio-Alarm mit einer Zeitperiode von 14 Millisekunden hat, und wobei eine Verzögerung zwischen der Einleitung der zwei Alarme 15 Millisekunden beträgt, um die Bedeutung zu verstärken. Bei einer solchen Ausführungsform beginnt die Audioabspielung zwei Millisekunden nachdem der erste Rahmen von der haptischen Ausgabe beendet ist. Der zweite Audio-Rahmen beginnt mit der Abspielung drei Millisekunden nach Beendigung des zweiten Rahmens von der haptischen Ausgabe. Der dritte Audio-Rahmen beginnt mit der Abspielung vier Millisekunden nach Beendigung des dritten Rahmens von der haptischen Ausgabe, usw. Wenn ein Benutzer keinerlei Unterschied in der Bedeutung wahrnehmen kann, bis die Wellenformen zumindest 25 Millisekunden voneinander entfernt sind, können dann 25 Rahmen der haptischen Ausgabe und Audio-Ausgabe abgespielt werden, bevor eine jegliche Pause oder Neusynchronisation eingeleitet werden kann. Ebenso, wenn die Audio-Ausgabe und haptische Ausgabe im Verlaufe einer erweiterten Zeitperiode mit dem Abspielen fortfahren und schrittweise aus der Synchronisation gelangen, können die kombinierten Ausgaben (beispielsweise der Alarm) an einem bestimmten Punkt die Energie-Einhüllende übersteigen, wodurch somit entweder eine Neusynchronisation oder die Energiereduktion hinsichtlich einer oder beider Bauteil-Ausgaben erforderlich wird.
-
Um eine wahrnehmbare Synchronisation und/oder eine Energie-Einplanung beizubehalten, kann es nützlich sein, dass die Zeitperiode von einer ersten Ausgabe innerhalb von 10% der Zeitperiode von einer zweiten Ausgabe liegt (beispielsweise 90 bis 110%). Ferner kann es nützlich sein, dass die Zeitperioden von der ersten und zweiten Ausgabe derart ausgewählt werden, dass sie um 180 Grad phasenverschoben sind, wodurch die gesamten Energieeinschränkungen des Systems herabgesetzt werden und die Wahrscheinlichkeit reduziert wird, dass der Energie-Schwellwert überschritten wird.
-
Es sollte anerkannt werden, dass die Zeitperiode von einzelnen Ausgaben eines Alarms mit einer Anzahl von System-Charakteristiken variieren kann. Als ein Beispiel kann es gewünscht sein, dass eine haptische Ausgabe bei oder in der Nähe von einer Resonanzfrequenz von einem Gehäuse liegt, mit welchem die haptische Ausgabe mitschwingt. Unter Heranziehung des zuvor genannten Beispiels, beträgt die Frequenz von einer haptischen Ausgabe, welche eine Zeitperiode von ungefähr 13 Millisekunden hat, ungefähr 76–77 Hz, und wird somit hervorrufen, dass ein Gehäuse, welches die gleiche Resonanzfrequenz hat, die haptische Ausgabe verstärken wird.
-
4C zeigt ein Ablaufdiagramm, welches ein beispielhaftes Verfahren zum Bestimmen von Zeitperioden von einer oder von mehreren Bauteil-Ausgaben eines Alarms anzeigt. Es sollte anerkannt werden, dass das beispielhafte Verfahren nicht bei allen Bauteil-Ausgaben anzuwenden ist oder im Gegenteil bei mehr als einer Bauteil-Ausgabe angewendet werden kann. Im Allgemeinen, obwohl nicht notwendig, kann das Verfahren von 4C bei allen anstelle bei einer der Bauteil-Ausgaben angewendet werden.
-
Das Verfahren beginnt seinen Betrieb bei Schritt 425, bei welchem die Vorrichtung 101 die Ausgabe eines Alarms einleitet. Als Nächstes erlangt die Vorrichtung in Schritt 430 die Bauteil-Ausgaben des Alarms, beispielsweise von dem zuvor genannten Speicher, wobei die Bauteil-Ausgaben in dem Speicher als Wellenformen gespeichert sein können. Bestimmte Bauteil-Ausgaben können von gespeicherten Parametern anstelle von erlangten Parametern erzeugt werden. Als ein nicht einschränkendes Beispiel kann eine Vorrichtung 101 einen Qualitätsfaktor (beispielsweise ein Q-Faktor) und eine Resonanzfrequenz von einem Gehäuse von einer elektronischen Vorrichtung oder von der gesamten elektronischen Vorrichtung erlangen. Es kann eine haptische Ausgabe zumindest teilweise basierend auf dem Q-Faktor von dem haptischen Stellglied oder der Vorrichtung 101, der Resonanzfrequenz von dem haptischen Stellglied oder der Vorrichtung 101, einer Form der haptischen Wellenform, einer gewünschten Abspielzeitlänge, einem Intensitätspegel im Verlaufe der Abspielung oder einer Kombination hiervon erzeugt werden. Die gewünschte Zeitlänge kann eine Zeitdauer darstellen, innerhalb welcher der Alarm (oder eine jegliche individuelle Bauteil-Ausgabe) abgespielt wird. Der Intensitätspegel kann einem Prozentsatz oder Bruchteil von einem vorgegebenen Intensitätspegel entsprechen. Der vorgegebene Intensitätspegel kann auf einer maximalen Amplitude, einer vorgegebenen Amplitude oder einer vorgegebenen Energie (beispielsweise 1 Watt, 1/2 Watt, usw.) basieren. Durch eine geringere Intensität wird weniger Energie benötigt, um die haptische Ausgabe zu erzeugen, so dass der Intensitätspegel in einer Ausführungsform einen Energieverbrauch durch die Vorrichtung 101 widerspiegeln kann oder diesem entsprechen kann. Die Vorrichtung 101 bestimmt in Schritt 435 die Reihenfolge, in welcher die Bauteil-Ausgaben auszugeben sind.
-
Bei Schritt 440 stellt die Vorrichtung 101 eine Zeitverzögerung zwischen den Bauteil-Ausgaben ein, wie hier beschrieben. Im Allgemeinen kann eine Bauteil-Ausgabe (beispielsweise die haptische Ausgabe) beginnend bei einer eingestellten Zeit abgespielt werden, und kann die Zeit, bei welcher das Abspielen von der weiteren Bauteil-Ausgabe beginnt (beispielsweise die Audio-Ausgabe) (oder mehrere, falls mehrere Bauteil-Ausgaben vorliegen) zeitlich entsprechend eingestellt werden. Es sollte anerkannt werden, dass die zeitliche Einstellung eine Verzögerung bei der Wiedergabe von der zweiten Bauteil-Ausgabe (beispielsweise die Audio-Ausgabe) oder eine beschleunigte Wiedergabe von der ersten Bauteil-Ausgabe (beispielsweise die haptische Ausgabe) begründen kann.
-
In Schritt 445 bestimmt die Vorrichtung 101 ob die Wiedergabe von allen Bauteil-Ausgaben, wie eingeplant, einen maximalen Energie-Schwellwert übersteigt. Dieser Energie-Schwellwert kann ein Wert sein, welcher zu keinerlei vorgegebenem Punkt durch das System oder die Bauteil-Ausgaben überstiegen werden sollte, oder er kann ein Wert sein, welcher kumuliert über eine bestimmte Zeitdauer nicht überstiegen werden sollte. Der Schwellwert kann beispielsweise überstiegen werden, wenn eine oder mehrere der Bauteil-Ausgaben eine Amplitude oder Intensität hat bzw. haben, welche über die Zeit ansteigt. Ein spezifisches Beispiel hiervon ist eine Audio-Ausgabe, welche stetig lauter wird, ein weiteres Beispiel ist eine haptische Ausgabe, deren Kraft über die Zeit anwächst. Ein weiteres Beispiel ist eine Audio-Ausgabe, welche über eine Zeitdauer hinweg gleichzeitig mit einer oder mehreren haptischen Ausgaben abgespielt wird, wobei ein Beispiel hiervon in 4D dargestellt ist und im Folgenden beschrieben wird.
-
Immer noch Bezugnehmend auf 4C, führt die Vorrichtung 101, falls die Vorrichtung 101 in Schritt 445 bestimmt, dass eine maximale Energie überstiegen werden wird, einen Schritt 450 aus und reduziert den Energieverbrauch oder den Intensitätspegel von einer oder mehreren Bauteil-Ausgaben. Dies kann vorgenommen werden, indem beispielsweise die Amplitude von der einen oder den mehreren Bauteil-Ausgaben reduziert wird.
-
Wenn die Vorrichtung 101 in Schritt 445 bestimmt, dass eine maximale Energie nicht überstiegen werden wird, fährt die Vorrichtung mit Schritt 455 fort.
-
In Schritt 455 kann die Vorrichtung 101 bestimmen ob die Bauteile-Ausgaben ausreichend synchronisiert sind, wie hier beschrieben. Falls dies der Fall ist, fährt die Vorrichtung 101 mit Schritt 460 fort und gibt den Alarm aus. Das Bereitstellen des Alarms kann ein mehrfaches Abspielen der Bauteil-Ausgaben, ein Einstellen einer Energie und/oder Synchronisation der Bauteil-Ausgaben, wie hier beschrieben, usw., umfassen. Im Allgemeinen werden die Bauteil-Ausgaben des Alarms gemäß der in Schritt 435 bestimmten Reihenfolge und der in Schritt 440 bestimmten Zeitverzögerung, den in Schritt 450 bestimmten Amplituden oder Intensitätspegeln, und der in Schritt 455 bestimmten Synchronisation ausgegeben.
-
Wenn die Vorrichtung 101 in Schritt 455 bestimmt, dass die Ausgaben ausreichend synchronisiert sind, fährt die Vorrichtung 101 mit Schritt 465 fort und erstreckt, verlängert, verkürzt oder ändert andersartig die Abspielzeit von einer oder mehreren Bauteil-Ausgaben. Dies kann nicht nur zur Synchronisation der Ausgaben vorgenommen werden, sondern um ebenso sicherzustellen, dass bestimmte Bauteil-Ausgaben bei oder in der Nähe von einer Resonanzfrequenz von einer Vorrichtung oder einem Gehäuse abgespielt werden. Somit kann beispielsweise eine Frequenz einer haptischen Ausgabe erhöht oder verringert werden, um mit der zuvor genannten Resonanzfrequenz übereinzustimmen oder sich dieser mehr anzugleichen. Audio-Ausgaben können ebenso hinsichtlich einer Resonanzfrequenz von einer Vorrichtung bzw. einem Gehäuse angepasst oder eingestellt werden. Die Vorrichtung 101 fährt dann mit Schritt 460 fort und gibt den Alarm aus.
-
Nach Schritt 460 fährt die Vorrichtung 101 mit einem Endzustand 470 fort. Im Allgemeinen kann der Alarm enden, sobald ein Benutzer den Alarm bestätigt, wenn eine bestimmte Zeit erreicht ist (beispielsweise ist das Ende des Alarms erreicht) oder sobald eine Bedingung eingehalten wird (beispielsweise das Ende eines eingehenden Telefonanrufs als ein nicht einschränkendes Beispiel).
-
4D stellt einen beispielhaften Alarm dar, welcher zwei Bauteil-Ausgaben hat, nämlich eine haptische Ausgabe und eine Audio-Ausgabe 480. Die haptische Ausgabe kann aus mehreren Wellenformen (oder Komponenten davon) 475, 485, 490 erstellt werden, wobei alle haptischen Wellenformen in einigen Fällen durch ein zwischengesetztes Wellenform-Zeitintervall 495 getrennt sein können, obwohl dies nicht in allen Ausführungsformen notwendig ist.
-
Wie in 4D gezeigt, kann die erste haptische Wellenform 475 eine erste Amplitude oder Intensität haben, bei welcher sie abgespielt wird. In einer Ausführungsform kann die erste haptische Wellenform 475 bei einer vorgegebenen Amplitude oder Intensität abgespielt werden. Sobald das Abspielen von der ersten haptischen Wellenform 475 im Wesentlichen abgeschlossen ist (beispielsweise zu 85% abgeschlossen), kann die Audio-Ausgabe 480 damit beginnen, dass sie bei ihrer vollen Intensität oder Amplitude abspielt.
-
Die Vorrichtung 101 kann bestimmen, dass die Kombination von der haptischen Ausgabe und Audio-Ausgabe einen Energie-Schwellwert überstiegen hat, wenn die verbleibenden haptischen Wellenformen 485, 490 bei der vorgegebenen Amplitude oder Intensität abgespielt werden. Demgemäß kann die Vorrichtung die Intensität von nachfolgenden haptischen Wellenformen 485, 490 beim Abspielen reduzieren, damit die gesamte Energie, welche durch den Alarm verbraucht wird (einschließlich sowohl der haptischen Ausgabe als auch der Audio-Ausgabe), unterhalb des Schwellwerts beibehalten wird. Somit kann die reduzierte Intensität der haptischen Wellenformen 485, 490 der Energie Rechnung tragen, welche durch die Audio-Wellenform 480 verbraucht wird.
-
Obwohl die haptischen Wellenformen 485, 490 derart gezeigt sind, dass sie die gleiche reduzierte Intensität haben, sollte anerkannt werden, dass die Vorrichtung 101 die Intensität von einer haptischen Wellenform gegenüber der weiteren modifizieren kann, um Schwankungen in der Audio-Ausgabe 480 Rechnung zu tragen. Wenn beispielsweise die Audio-Ausgabe 480 in der Intensität zunimmt, nachdem die zweite haptische Wellenform 485 abgespielt ist, kann die Intensität von der dritten haptischen Wellenform 490 weiter verringert werden. Als eine Option kann die Vorrichtung 101 eine Spitzen-Intensität, Amplitude oder eine weitere Messung einer aufgrund der Audio-Ausgabe 480 gezogenen Energie bestimmen und die Intensität/Amplitude/Energie von allen haptischen Wellenformen, welche während der Ausgabe von der Audio-Wellenform abgespielt wurden, entsprechend skalieren. Alternativ kann eine solche Skalierung mit fortschreitendem Abspielen der Bauteil-Ausgaben dynamisch auftreten, wodurch in einigen Ausführungsformen zugelassen wird, dass die Vorrichtung die Intensität/Amplitude von einer Bauteil-Ausgabe spontan modifiziert, und zwar lediglich für einen Teil von einer Wellenform.
-
In einer weiteren Ausführungsform kann die Vorrichtung 101 anstelle oder zusätzlich zur Skalierung der Intensität von der haptischen Ausgabe die Intensität von der Audio-Ausgabe während des Abspielens reduzieren, um die Alarm-Ausgabe unterhalb eines bestimmten Energie-Schwellwerts zu halten. Dies kann beispielsweise auftreten, falls ein minimaler Schwellwert vorliegt, unterhalb dessen die Intensität von der haptischen Ausgabe nicht skaliert werden kann. In diesem Fall kann die Vorrichtung 101 die Intensität von der Audio-Ausgabe reduzieren, und zwar anstelle oder zusätzlich zur Reduktion der Intensität von der haptischen Ausgabe. Wie zuvor beschrieben, kann die Intensität oder Amplitude von der Audio-Ausgabe und/oder haptischen Ausgabe mit fortschreitendem Abspielen dynamisch skaliert werden und in einigen Ausführungsform für einen Teil von einer Wellenform.
-
Die Zeitverzögerung (falls eine vorliegt), implementiert in einer Ausführungsform, und eine Synchronisation von Ausgabe-Strömen können basierend auf einer Anzahl von Faktoren ausgewählt werden, wie beispielsweise die Ausgabetypen, welche bereitgestellt werden, der Ausgabetyp, welcher verzögert wird, die angenommene oder tatsächliche Stelle oder Distanz der Vorrichtung in Relation zu einem Benutzer oder zu Sinnesorganen eines Benutzer, ob ein Benutzer die Vorrichtung berührt, usw. In einigen Fällen kann die Zeitverzögerung ein Vorgabewert sein, welcher in einem Puffer oder Rahmen enthalten ist, während die Zeitverzögerung in weiteren Fällen basierend beispielsweise auf Sensordaten, welche durch die elektronische Vorrichtung eingesammelt werden, dynamisch berechnet werden kann.
-
5A–5D zeigen Schaubilder, welche ein beispielhaftes Synchronisationsobjekt 500A–500D für zwei Ausgabeströme im Verlaufe einer Synchronisation entsprechend dem in 3 dargestellten Betrieb 300 darstellen. Wie in diesem Beispiel dargestellt, kann das Synchronisationsobjekt ein Feld mit Zeilen für sowohl das Lautsprecher-Wiedergabegerät 301 als auch das haptische Wiedergabegerät 302 von 3 annehmen. Wie in diesem Beispiel ebenso dargestellt, kann das Synchronisationsobjekt Zeilen für die Statuszeit für jedes der unabhängigen Wiedergabegeräte, die Rahmen, welche zur Wiedergabe für jedes der unabhängigen Wiedergabegeräte angefragt werden, und den Status von jedem der unabhängigen Wiedergabegeräte haben.
-
Obwohl das Synchronisationsobjekt 500A–500D als ein Feld mit bestimmten Datenelementen in 5A–5D dargestellt ist, ist verständlich, dass dies ein Beispiel ist. Bei verschiedenartigen Implementierungen kann eine jegliche Art einer oder mehrerer Datenstruktur bzw. Datenstrukturen mit einer jeglichen Art von Datenelementen verwendet werden, ohne vom Umfang der vorliegenden Beschreibung abzuweichen.
-
5A kann den Zustand von dem Synchronisationsobjekt 500A zu der in 3 dargestellten Zeit 100 darstellen. Wie gezeigt, kann das Lautsprecher-Wiedergabegerät zum Zeitpunkt 100 mit dem Synchronisationsobjekt interagieren, um seine Statuszeit, seine Rahmen, welche zur Wiedergabe angefragt werden, und/oder seinen Status zu aktualisieren. Somit kann das Synchronisationsobjekt zu diesem Zeitpunkt einen Wert von 100 für die Statuszeit des Lautsprecher-Wiedergabegeräts, einen Wert von 100 für die Rahmen des Lautsprecher-Wiedergabegeräts, welche zur Wiedergabe angefragt werden, und einen Wert von ”Bereit” für den Status des Lautsprecher-Wiedergabegeräts haben. Das Synchronisationsobjekt kann jedoch zu diesem Zeitpunkt einen Wert von NA für die Statuszeit des haptischen Wiedergabegeräts, einen Wert von NA für die Rahmen des haptischen Wiedergabegeräts, welche zur Wiedergabe angefragt werden, und einen Wert von ”abwarten” für den Status des haptischen Wiedergabegeräts haben, da das haptische Wiedergabegerät keinen Versuch unternommen hat, mit der Wiedergabe zu beginnen und/oder zum Zeitpunkt 100 auf das Synchronisationsobjekt zugegriffen hat.
-
5B kann den Zustand des Synchronisationsobjekts 500B zu dem in 3 dargestellten Zeitpunkt 125 darstellen. Wie gezeigt, kann das haptische Wiedergabegerät zum Zeitpunkt 125 mit dem Synchronisationsobjekt interagieren, um seine Statuszeit, seine Rahmen, welche zur Wiedergabe angefragt werden, und/oder seinen Status zu aktualisieren. Somit kann das Synchronisationsobjekt zu diesem Zeitpunkt einen Wert von 125 für die Statuszeit des haptischen Wiedergabegeräts, einen Wert von 50 für die Rahmen des haptischen Wiedergabegeräts, welche zur Wiedergabe angefragt werden, und einen Wert von ”Bereit” für den Status des haptischen Wiedergabegeräts haben. Das Synchronisationsobjekt kann zu diesem Zeitpunkt jedoch immer noch einen Wert von 100 für die Statuszeit des Lautsprecher-Wiedergabegeräts, einen Wert von 100 für die Rahmen des Lautsprecher-Wiedergabegeräts, welche zur Wiedergabe angefragt werden, und einen Wert von ”Bereit” für den Status des Lautsprecher-Wiedergabegeräts haben, da das Lautsprecher-Wiedergabegerät noch nicht seinen nächsten Eingabe/Ausgabe-Zyklus erreicht hat.
-
Wenn das Synchronisationsobjekt 500B anzeigt, dass beide unabhängigen Wiedergabegeräte zum Zeitpunkt 125 zur Wiedergabe bereit sind, kann die Synchronisationszeit dann anhand des Synchronisationsobjekts bestimmt werden. Das Synchronisationsobjekt zeigt an, dass das Lautsprecher-Wiedergabegerät eine Statuszeit von 100 und eine Anzahl von zur Wiedergabe angefragten Rahmen von 100 hat. Somit zeigt das Synchronisationsobjekt an, dass der nächste Eingabe/Ausgabe-Zyklus für das Lautsprecher-Wiedergabegerät zum Zeitpunkt 200 sein wird (oder eine Statuszeit, welche den zur Wiedergabe angefragten Rahmen hinzufügt wird). Ähnlich zeigt das Synchronisationsobjekt an, dass das haptische Wiedergabegerät eine Statuszeit von 125 hat und eine Anzahl von zur Wiedergabe angefragten Rahmen von 50 hat. Somit zeigt das Synchronisationsobjekt an, dass der nächste Eingabe/Ausgabe-Zyklus für das haptische Wiedergabegerät zum Zeitpunkt 175 sein wird. Da jedoch das Lautsprecher-Wiedergabegerät nicht bis zur nächsten Zykluszeit (Zeit 200) des Lautsprecher-Wiedergabegeräts einbuchen wird, um zu lernen, dass alle Wiedergabegeräte bereit sind, wird der Zeitpunkt von der nächsten Zykluszeit des Lautsprecher-Wiedergabegeräts als die Synchronisationszeit ausgewählt.
-
5C kann den Status des Synchronisationsobjekts 500C zum Zeitpunkt 175 darstellen, wie in 3 dargestellt. Wie gezeigt, kann das haptische Wiedergabegerät zum Zeitpunkt 175 mit dem Synchronisationsobjekt interagieren, um seine Statuszeit, seine Rahmen, welche zur Wiedergabe angefragt werden, und/oder seinen Status zu aktualisieren. Somit kann das Synchronisationsobjekt zu diesem Zeitpunkt einen Wert von 175 für die Statuszeit des haptischen Wiedergabegeräts, einen Wert von 50 für die zur Wiedergabe angefragten Rahmen des haptischen Wiedergabegeräts, und einen Wert von ”Bereit” für den Status des haptischen Wiedergabegeräts haben. Jedoch kann das Synchronisationsobjekt zu diesem Zeitpunkt immer noch einen Wert von 100 für die Statuszeit des Lautsprecher-Wiedergabegeräts, einen Wert von 100 für die zur Wiedergabe angefragten Rahmen des Lautsprecher-Wiedergabegeräts, und einen Wert von ”Bereit” für den Status des Lautsprecher-Wiedergabegeräts haben, da das Lautsprecher-Wiedergabegerät seinen nächsten Eingabe-Ausgabe-Zyklus noch nicht erreicht hat.
-
5D kann den Zustand des Synchronisationsobjekts 500D zu der in 3 dargestellten Zeit 200 darstellen. Wie gezeigt, kann das Lautsprecher-Wiedergabegerät zur Zeit 200 mit dem Synchronisationsobjekt interagieren, um seine Statuszeit, seine zur Wiedergabe angefragten Rahmen und/oder seinen Status zu aktualisieren. Somit kann das Synchronisationsobjekt zu dieser Zeit einen Wert von 200 für die Statuszeit des Lautsprecher-Wiedergabegeräts, einen Wert von 100 für die zur Wiedergabe angefragten Rahmen des Lautsprecher-Wiedergabegeräts und einen Wert von ”synchron” oder ”synchronisiert” für den Status des Lautsprecher-Wiedergabegeräts haben. Wenn die Synchronisationszeit (die Zeit 200) erreicht ist, können das Lautsprecher-Wiedergabegerät und das haptische Wiedergabegerät mit der Wiedergabe ihrer jeweiligen Ausgabeströme beginnen.
-
Obwohl die Synchronisationszeit in dem zuvor genannten Beispiel als die nächste Eingabe/Ausgabe-Zykluszeit des Wiedergabegeräts mit der längsten Eingabe/Ausgabe-Zykluszeit bestimmt wurde, kann dies nicht in allen Beispielen der Fall sein. Die Synchronisationszeit kann tatsächlich als das Maximum der nächsten Eingabe/Ausgabe-Zykluszeit bestimmt werden, welche für ein jegliches Wiedergabegerät auftreten wird, nachdem alle Wiedergabegeräte eingebucht sind. Zum Zwecke einer solchen Analyse ist die ”nächste” Eingabe/Ausgabe-Zykluszeit für ein Wiedergabegerät, wenn es sich einbucht, tatsächlich die aktuelle Eingabe/Ausgabe-Zykluszeit des Wiedergabegeräts, sofern sich ein Wiedergabegerät einbuchen kann, den Aufbau einer Synchronisation hervorruft und dann unmittelbar oder im Wesentlichen unmittelbar mit der Wiedergabe beginnt. Als ein Beispiel, wenn sich das haptische Wiedergabegerät zu einer Zeit 75 eingebucht hat, bevor sich das Lautsprecher-Wiedergabegerät zur Zeit 100 eingebucht hat, sind alle Wiedergabegeräte zur Zeit 100 zur Wiedergabe bereit, und kann die Synchronisationszeit für ein jegliches Wiedergabegerät als die nächste Eingabe/Ausgabe-Zykluszeit eingestellt werden, welche für das haptische Wiedergabegerät die Zeit 125 sein würde.
-
6 zeigt ein Ablaufdiagramm, welches ein beispielhaftes Verfahren 600 zur Synchronisation von unabhängigen Ausgabeströmen darstellt. Dieses Verfahren kann durch das System von 1 durchgeführt werden, und es können solche unabhängigen Ausgabeströme über die zwei Kanäle von einem Stereo-Audiokanal übertragen werden, als ein nicht einschränkendes Beispiel. In einer solchen Ausführungsform können die Ausgabeströme jeweils als oder auf einem Audiokanal übertragen werden.
-
Der Ablauf beginnt bei Block 601 und fährt mit Block 602 fort, in welchem eine elektronische Vorrichtung arbeitet. Der Ablauf fährt dann mit Block 603 fort, in welchem bestimmt wird, ob Ausgabeströme, welche zu synchronisieren sind, unabhängig wiedergegeben werden oder nicht. Wenn dies der Fall ist, fährt der Ablauf mit Block 604 fort. Andererseits kehrt der Ablauf zu Block 602 zurück, in welchem die elektronische Vorrichtung mit dem Betrieb fortfährt.
-
Bei Block 604 werden, nachdem bestimmt ist, dass Ausgabeströme, welche zu synchronisieren sind, unabhängig wiederzugeben sind, unabhängige Wiedergabegeräte dazu angewiesen, jeden der Ausgabeströme wiederzugeben, und werden jeweils mit einem gemeinsam benutzen Synchronisationsobjekt bereitgestellt. Der Ablauf kehrt dann zu Block 605 zurück, bei welchem eine Zeit anhand des gemeinsam genutzten Synchronisationsobjekts bestimmt wird, zu welcher alle unabhängigen Wiedergabegeräte einen ersten Puffer von ihrem jeweiligen Ausgabestrom wiedergeben können. Als Nächstes fährt der Ablauf mit Block 606 fort, bei welchem eine Wiedergabe von jedem der Ausgabeströme unter Nutzung der jeweiligen unabhängigen Wiedergabegeräte zu der bestimmten Zeit begonnen wird.
-
Der Ablauf fährt dann mit Block 607 fort, in welchem bestimmt wird, ob die Wiedergabe der Ausgabeströme vollendet ist oder nicht. Wenn dies der Fall ist, kehrt der Ablauf zu Block 602 zurück und fährt die elektronische Vorrichtung mit Ihrem Betrieb fort. Andererseits fährt der Ablauf mit Block 608 fort.
-
Bei Block 608 wird die Wiedergabe von einem oder mehreren der Ausgabeströme fortgesetzt. Der Ablauf kehrt dann zu Block 607 zurück, in welchem bestimmt wird, ob die Wiedergabe der Ausgabeströme vollendet ist oder nicht.
-
Obwohl das beispielhafte Verfahren 600 derart dargestellt und beschrieben ist, dass bestimmte Betriebe in einer bestimmten Reihenfolge durchgeführt werden, ist zu verstehen, dass dies ein Beispiel ist. Bei verschiedenen Implementierungen können verschiedenartige Reihenfolgen der gleichen, ähnlichen und/oder unterschiedlichen Betriebe durchgeführt werden, ohne vom Umfang der vorliegenden Beschreibung abzuweichen.
-
Beispielsweise ist das beispielhafte Verfahren 600 derart dargestellt und beschrieben, dass bestimmt wird, ob die Wiedergabe bei Block 607 beendet ist oder nicht. In verschiedenartigen Implementierungen kann eine solche Bestimmung jedoch nicht durchgeführt werden. Anstelle dessen kann der Ablauf direkt von Block 406 zu Block 602 zurückkehren, wenn die Wiedergabe von allen Ausgabeströmen vollendet ist und/oder andererseits gelöscht ist.
-
Wie zuvor beschrieben und in den begleitenden Figuren dargestellt, sind in der vorliegenden Beschreibung Systeme, Computerprogrammprodukte und Verfahren zum Synchronisieren von unabhängigen Ausgabeströmen offenbart. Es können zumindest zwei Ausgabeströme, welche zu synchronisieren sind, dazu bestimmt werden, unter Verwendung von zumindest zwei unabhängigen Wiedergabegeräten wiedergegeben zu werden. Die unabhängigen Wiedergabegeräte können mit einem gemeinsam benutzen Synchronisationsobjekt bereitgestellt werden, sobald sie angewiesen werden, den jeweiligen Ausgabestrom wiederzugeben. Es kann eine Zeit, zu welcher alle unabhängigen Wiedergabegeräte einen jeweiligen ersten Puffer des jeweiligen Ausgabestroms wiedergeben können, anhand des gemeinsam benutzten Synchronisationsobjekts bestimmt werden. Eine Wiedergabe der Ausgabeströme unter Verwendung der unabhängigen Wiedergabegeräte kann zu der bestimmten Zeit beginnen. Auf diese Art und Weise kann die Wiedergabe der Ausgabeströme synchronisiert werden. Eine solche Synchronisation kann sicherstellen, dass ein Benutzer die wiedergegebenen Ausgabeströme so wie beabsichtigt erfährt. Eine solche Synchronisation kann ebenso ermöglichen, dass zumindest ein Bauteil innerhalb von einer Energieverbrauch-Beschränkung verbleibt, welche überstiegen werden würde, falls die Ausgabeströme ohne Synchronisation wiedergegeben werden.
-
Obwohl die vorliegende Beschreibung zuvor derart dargestellt und beschrieben wurde, dass Ausgabeströme synchronisiert werden, ist verständlich, dass dies ein Beispiel ist. Bei verschiedenartigen Implementierungen können Ströme, welche sich von Audio unterscheiden, synchronisiert werden, ohne vom Umfang der vorliegenden Beschreibung abzuweichen.
-
Ferner, obwohl eine spezifische Architektur beschrieben ist (wie beispielsweise zwei Kanäle von einem Stereo-Strom zwischen einer Verarbeitungseinheit und einem Codec), ist es verständlich, dass dies ein Beispiel ist. Bei verschiedenartigen Implementierungen können die hier beschriebenen Synchronisationstechniken dazu verwendet werden, um Ausgabeströme zu synchronisieren, welche unter Verwendung von zwei oder mehreren separaten Hardware-Ausgaben wiedergegeben werden.
-
Zusätzlich, obwohl die vorliegende Beschreibung als Synchronisationsströme, welche in einer einzelnen linearen Sequenz wiedergegeben werden, dargestellt und beschrieben ist, ist es verständlich, dass dies ein Beispiel ist, und dass weitere Anordnungen möglich sind und in Betracht gezogen werden. Beispielsweise kann ein Klingelton einen Klang und eine Vibration umfassen, welche periodisch wiederholt werden, welche jedoch keine identischen Zeitdauern haben können. In einem solchen beispielhaften Fall kann eine Wiedergabe des Klingeltons Wiedergabeschleifen des Klangs und der Vibration umfassen, und können die hier beschriebenen Synchronisationstechniken dazu verwendet werden, um den Startpunkt von jeder Schleife zu synchronisieren. In verschiedenen Fällen kann eine Verzögerung, welche bei der Wiedergabe von der ersten Schleife hervorgerufen wird, in nachfolgenden Schleifen wiederholt werden oder nicht wiederholt werden.
-
Bei der vorliegenden Beschreibung können die beschriebenen Verfahren als Sätze von Anweisungen oder Software implementiert werden, welche durch eine Vorrichtung lesbar sind. Es ist ferner verständlich, dass die spezifische Reihenfolge oder Hierarchie von Schritten in den beschriebenen Verfahren Beispiele von beispielhaften Ansätzen sind. In weiteren Ausführungsformen kann die spezifische Reihenfolge oder Hierarchie von Schritten in dem Verfahren neu angeordnet werden, während der beschriebene Gegenstand beibehalten wird. Die beiliegenden Verfahrensansprüche stellen Elemente der verschiedenartigen Schritte in einer beispielhaften Reihenfolge dar und sind nicht als auf die spezifische Reihenfolge oder Hierarchie, wie dargestellt, beschränkend auszulegen.
-
Die beschriebene Offenbarung kann als ein Computerprogrammprodukt oder eine Software bereitgestellt werden, welche ein nicht-flüchtiges, maschinenlesbares Medium umfassen kann, welches darin Anweisungen gespeichert hat, welche dazu verwendet werden können, um ein Computersystem (oder weitere elektronische Vorrichtungen) derart zu programmieren, um einen Ablauf gemäß der vorliegenden Beschreibung durchzuführen. Ein nicht-flüchtiges, maschinenlesbares Medium umfasst einen jeglichen Mechanismus zum Speichern von einer Information auf eine Art und Weise (beispielsweise Software, Verarbeitungsapplikation), welche durch eine Maschine (beispielsweise ein Computer) lesbar ist. Das nicht-flüchtige, maschinenlesbare Medium kann die Form von einem Magnetspeichermedium (beispielsweise Floppy-Diskette, Videokassette, usw.); einem optischen Speichermedium (beispielsweise CD-ROM); einem magneto-optischen Speichermedium; einem Festspeicher (ROM); einem Arbeitsspeicher (RAM); einem löschbaren, programmierbaren Speicher (beispielsweise EPROM und EEPROM); einem Flash-Speicher; usw., annehmen, wobei es nicht hierauf eingeschränkt ist.
-
In einigen Ausführungsformen kann eine oder können mehrere Applikationsprogramm-Schnittstellen (APIs) verwendet werden, und eine hier beschriebene Funktionalität kann durch eine API implementiert werden oder durch diese aufgerufen werden. Eine API ist eine Schnittstelle, die durch eine Programmcodekomponente oder Hardwarekomponente (nachfolgend ”API-implementierende Komponente”) implementiert ist, die einer anderen Programmcodekomponente oder Hardwarekomponente (nachfolgend ”API-aufrufende Komponente”) ermöglicht, ein oder mehrere Funktionen, Verfahren, Prozeduren, Datenstrukturen, Klassen und/oder Dienste, die durch die API-implementierende Komponente bereitgestellt werden, aufzurufen und zu benutzen. Eine API kann einen oder mehrere Parameter definieren, die zwischen der API-aufrufenden Komponente und der API-implementierenden Komponente weitergeleitet werden.
-
Eine API ermöglicht einem Entwickler einer API-aufrufenden Komponente (der ein Drittentwickler sein kann), sich spezifizierte Merkmale, die durch die API-implementierende Komponente bereitgestellt werden, zunutze zu machen. Es kann eine API-aufrufende Komponente oder mehrere solcher Komponenten geben. Eine API kann eine Quellcodeschnittstelle sein, die ein Computersystem oder eine Programmbibliothek zur Verfügung stellt, um Anfragen für Dienste von einer Anwendung zu unterstützen. Ein Betriebssystem (OS) kann mehrere APIs aufweisen, um Anwendungen, die vom Betriebssystem ausgeführt werden, zu ermöglichen, eine oder mehrere dieser APIs aufzurufen, und ein Dienst (wie z. B. eine Programmbibliothek) kann mehrere APIs aufweisen, um einer Anwendung, die den Dienst nutzt, zu erlauben, eine oder mehrere dieser APIs aufzurufen. Eine API kann in Form einer Programmiersprache spezifiziert sein, die interpretiert oder kompiliert werden kann, wenn eine Anwendung erstellt wird.
-
Es wird angenommen, dass die vorliegende Beschreibung und viele der begleitenden Vorteile anhand der vorhergehenden Beschreibung verständlich sind, und es wird anerkannt, dass verschiedenartige Änderungen in der Form, im Aufbau und in der Anordnung der Komponenten vorgenommen werden können, ohne vom beschriebenen Gegenstand abzuweichen oder ohne alle materiellen Vorteile hinzugeben. Die beschriebene Form ist lediglich beispielhaft, und es ist beabsichtigt, dass die folgenden Ansprüche solche Änderungen einschließen und umfassen.
-
Obwohl die vorliegende Beschreibung unter Bezugnahme auf verschiedenartige Ausführungsformen beschrieben wurde, wird verständlich sein, dass diese Ausführungsformen darstellhaft sind, und dass der Umfang der Beschreibung nicht hierauf eingeschränkt ist. Es sind viele Variationen, Modifikationen, Hinzufügungen und Verbesserungen möglich. Genauer gesagt, wurden Ausführungsformen gemäß der vorliegenden Beschreibung im Kontext bestimmter Ausführungsformen beschrieben. Es kann eine Funktionalität in Blöcken getrennt oder hierzu kombiniert werden, welche in verschiedenartigen Ausführungsformen von der Beschreibung unterschiedlich sind oder durch eine unterschiedliche Terminologie beschrieben sind. Diese und weitere Variationen, Modifikationen, Hinzufügungen und Verbesserungen können innerhalb des Umfangs der Beschreibung fallen, wie in den beiliegenden Ansprüchen definiert.